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
459bb4a647
core/state: move state log mechanism to a separate layer ( #30569 )
...
This PR moves the logging/tracing-facilities out of `*state.StateDB`,
in to a wrapping struct which implements `vm.StateDB` instead.
In most places, it is a pretty straight-forward change:
- First, hoisting the invocations from state objects up to the statedb.
- Then making the mutation-methods simply return the previous value, so
that the external logging layer could log everything.
Some internal code uses the direct object-accessors to mutate the state,
particularly in testing and in setting up state overrides, which means
that these changes are unobservable for the hooked layer. Thus, configuring
the overrides are not necessarily part of the API we want to publish.
The trickiest part about the layering is that when the selfdestructs are
finally deleted during `Finalise`, there's the possibility that someone
sent some ether to it, which is burnt at that point, and thus needs to
be logged. The hooked layer reaches into the inner layer to figure out
these events.
In package `vm`, the conversion from `state.StateDB + hooks` into a
hooked `vm.StateDB` is performed where needed.
---------
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
4 weeks ago
..
runtime
eth/tracers: various fixes ( #30540 )
1 month ago
testdata
core/vm: more benchmarks for bls g1/g2-multiexp precompiles ( #30459 )
2 months ago
analysis_eof.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
analysis_legacy.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
analysis_legacy_test.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
common.go
all: get rid of custom MaxUint64 and MaxUint64 ( #30636 )
1 month ago
contract.go
cmd, core, params, trie: add verkle access witness gas charging ( #29338 )
7 months ago
contracts.go
common: drop BigMin and BigMax, they pollute our dep graph ( #30645 )
1 month ago
contracts_fuzz_test.go
eth/tracers: live chain tracing with hooks ( #29189 )
8 months ago
contracts_test.go
core/vm: add KZG benchmark ( #29583 )
7 months ago
doc.go
core/vm: remove JIT VM codes ( #16362 )
7 years ago
eips.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
eof.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
eof_control_flow.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
eof_immediates.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
eof_instructions.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
eof_test.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
eof_validation.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
eof_validation_test.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
errors.go
build: update to golangci-lint 1.61.0 ( #30587 )
1 month ago
evm.go
eth/tracers: various fixes ( #30540 )
1 month ago
gas.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
gas_table.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
gas_table_test.go
core/state: state reader abstraction ( #29761 )
3 months ago
instructions.go
core/state: move state log mechanism to a separate layer ( #30569 )
4 weeks ago
instructions_test.go
core/state: state reader abstraction ( #29761 )
3 months ago
interface.go
core/state: move state log mechanism to a separate layer ( #30569 )
4 weeks ago
interpreter.go
core/tracing, core/vm: add ContractCode to the OpContext ( #30466 )
2 months ago
interpreter_test.go
all: get rid of custom MaxUint64 and MaxUint64 ( #30636 )
1 month ago
jump_table.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
jump_table_export.go
core: fix typos ( #28255 )
1 year ago
jump_table_test.go
all: fix typos in comments ( #28881 )
10 months ago
memory.go
core/vm: reuse Memory instances ( #30137 )
3 months ago
memory_table.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
memory_test.go
core/vm: implement EIP-5656, mcopy instruction ( #26181 )
1 year ago
opcodes.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
operations_acl.go
core/vm, cmd/evm: implement eof validation ( #30418 )
2 months ago
operations_verkle.go
all: get rid of custom MaxUint64 and MaxUint64 ( #30636 )
1 month ago
stack.go
core/vm: improved stack swap performance ( #30249 )
4 months ago
stack_table.go
core/vm: 64 bit memory and gas calculations ( #19210 )
6 years ago