Official Go implementation of the Ethereum protocol
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Martin HS
6d3d252a5e
core/vm/program: evm bytecode-building utility ( #30725 )
...
In many cases, there is a need to create somewhat nontrivial bytecode. A
recent example is the verkle statetests, where we want a `CREATE2`- op
to create a contract, which can then be invoked, and when invoked does a
selfdestruct-to-self.
It is overkill to go full solidity, but it is also a bit tricky do
assemble this by concatenating bytes. This PR takes an approach that
has been used in in goevmlab for several years.
Using this utility, the case can be expressed as:
```golang
// Some runtime code
runtime := program.New().Ops(vm.ADDRESS, vm.SELFDESTRUCT).Bytecode()
// A constructor returning the runtime code
initcode := program.New().ReturnData(runtime).Bytecode()
// A factory invoking the constructor
outer := program.New().Create2AndCall(initcode, nil).Bytecode()
```
We have a lot of places in the codebase where we concatenate bytes, cast
from `vm.OpCode` . By taking tihs approach instead, thos places can be made a
bit more maintainable/robust.
4 days ago
..
asm
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
bloombits
all: fix typos in comments ( #29873 )
6 months ago
forkid
all: remove TerminalTotalDifficultyPassed ( #30609 )
1 month ago
rawdb
all: fix issues with benchmarks ( #30667 )
3 weeks ago
state
core: fix typos ( #30767 )
5 days ago
stateless
beacon, core, eth, miner: integrate witnesses into production Geth ( #30069 )
2 months ago
tracing
eth/tracers: various fixes ( #30540 )
1 month ago
txpool
core/txpool, eth/catalyst: clear transaction pool in Rollback ( #30534 )
5 days ago
types
common: drop BigMin and BigMax, they pollute our dep graph ( #30645 )
1 month ago
vm
core/vm/program: evm bytecode-building utility ( #30725 )
4 days ago
.gitignore
Renamed `chain` => `core`
10 years ago
bench_test.go
all: fix issues with benchmarks ( #30667 )
3 weeks ago
block_validator.go
build: update to golangci-lint 1.61.0 ( #30587 )
1 month ago
block_validator_test.go
all: remove TerminalTotalDifficultyPassed ( #30609 )
1 month ago
blockchain.go
core/state: move state log mechanism to a separate layer ( #30569 )
1 month ago
blockchain_insert.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
blockchain_reader.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
blockchain_repair_test.go
core, eth, node: break rawdb -> {leveldb, pebble} dependency ( #30689 )
4 weeks ago
blockchain_sethead_test.go
core, eth, node: break rawdb -> {leveldb, pebble} dependency ( #30689 )
4 weeks ago
blockchain_snapshot_test.go
core, eth, node: break rawdb -> {leveldb, pebble} dependency ( #30689 )
4 weeks ago
blockchain_test.go
core, eth, node: break rawdb -> {leveldb, pebble} dependency ( #30689 )
4 weeks ago
bloom_indexer.go
core: preallocate batch size in bloomIndexer ( #25289 )
2 years ago
chain_indexer.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
chain_indexer_test.go
all: improve some error strings ( #29842 )
6 months ago
chain_makers.go
core: enable EIP-2935 in chain maker ( #30575 )
1 month ago
chain_makers_test.go
all: remove TerminalTotalDifficultyPassed ( #30609 )
1 month ago
dao_test.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
error.go
cmd, core, params, trie: add verkle access witness gas charging ( #29338 )
7 months ago
events.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
evm.go
all: use big.Sign to compare with zero ( #29490 )
8 months ago
gaspool.go
core, miner: revert block gas counter in case of invalid transaction ( #26799 )
2 years ago
gen_genesis.go
core: go fmt ( #29544 )
7 months ago
genesis.go
all: implement EIP-7002 & EIP-7251 ( #30571 )
1 month ago
genesis_alloc.go
all: clean up goerli flag and config ( #30289 )
3 months ago
genesis_test.go
all: remove TerminalTotalDifficultyPassed ( #30609 )
1 month ago
headerchain.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
headerchain_test.go
all: remove forkchoicer and reorgNeeded ( #29179 )
3 months ago
mkalloc.go
accounts, cmd/geth, core: close opened files ( #29598 )
7 months ago
rlp_test.go
core: move genesis alloc types to core/types ( #29003 )
9 months ago
sender_cacher.go
all: refactor txpool into it's own package in prep for 4844
2 years ago
state_prefetcher.go
all: stateless witness builder and (self-)cross validator ( #29719 )
5 months ago
state_processor.go
core: fix tracing of system calls ( #30666 )
1 month ago
state_processor_test.go
core, trie: verkle state processor tests ( #30672 )
3 weeks ago
state_transition.go
common: drop BigMin and BigMax, they pollute our dep graph ( #30645 )
1 month ago
stateless.go
beacon, core, eth, miner: integrate witnesses into production Geth ( #30069 )
2 months ago
txindexer.go
core, eth, ethstats: simplify chain head events ( #30601 )
1 month ago
txindexer_test.go
core: use in-memory freezer for tests ( #29720 )
7 months ago
types.go
all: implement flat deposit requests encoding ( #30425 )
2 months ago
verkle_witness_test.go
core: fix typos ( #30767 )
5 days ago