Commit graph

503 commits

Author SHA1 Message Date
codchen
c3763a0835 create with address 2024-05-14 12:59:52 +08:00
codchen
beaf8119e7 Update depth for precompile calls 2024-05-01 12:32:54 +08:00
codchen
0c20536427 Pass calling contract to precompiles 2024-04-09 13:23:31 +08:00
codchen
92059878bb Pass ReadOnly flag to precompiles 2024-04-08 14:54:24 +08:00
Matthieu Vachon
caf980e5ee Merge branch 'extended-tracer-backport-1.13.5' into feature/sei-extended-tracer-more-backport
# Conflicts:
#	core/state_processor.go
#	eth/tracers/api.go
#	lib/ethapi/api.go
#	lib/ethapi/transaction_args.go
2024-03-25 16:19:42 -04:00
Sina Mahmoodi
ca8ae560cb drop directory pkg
# Conflicts:
#	cmd/evm/internal/t8ntool/transition.go
2024-03-25 15:18:37 -04:00
Sina Mahmoodi
b267363c65 fix nil checks in runtime 2024-03-25 15:10:30 -04:00
Matthieu Vachon
9beae74e50 Merge branch 'extended-tracer-backport-1.13.5' into extended-tracer-sei 2024-03-18 16:33:37 -04:00
Martin Holst Swende
8ae03dd42a core/vm: documentation + minor refactoring 2024-03-18 15:56:36 -04:00
Matthieu Vachon
7ea867c727 Reverted some changes that are not required anymore with the new tracing interface
The new tracing interface avoids an import cycle we have before around `core`, `core/vm` and `core/state`. So I can revert some of the changes needed previously.
2024-03-15 17:16:44 -04:00
Matthieu Vachon
45cb5cd202 Merge branch 'extended-tracer-backport-1.13.5' into extended-tracer-sei
# Conflicts:
#	accounts/abi/bind/backends/simulated.go
#	cmd/evm/blockrunner.go
#	cmd/geth/config.go
#	cmd/geth/snapshot.go
#	core/genesis.go
#	core/genesis_test.go
#	core/state_processor.go
#	core/vm/contracts.go
#	eth/api_backend.go
#	eth/state_accessor.go
#	eth/tracers/api.go
#	eth/tracers/api_test.go
#	eth/tracers/js/goja.go
#	les/api_backend.go
#	les/state_accessor.go
#	lib/ethapi/api.go
#	light/odr_test.go
#	tests/block_test_util.go
2024-03-15 15:37:30 -04:00
Matthieu Vachon
17fcdfaadf Fixed incorrect captureBeging/captureEnd in EVM 2024-03-15 10:58:50 -04:00
Matthieu Vachon
3834f135a9 Series of changes to get backport to 1.13.5 working 2024-03-14 16:53:22 -04:00
Sina Mahmoodi
77a701cca4 rm extra param
# Conflicts:
#	core/vm/evm.go
2024-03-14 16:24:51 -04:00
Sina Mahmoodi
77486e91fb fix lint issue 2024-03-14 16:23:56 -04:00
Sina Mahmoodi
d0a86c45b5 rm canceler 2024-03-14 16:23:56 -04:00
Sina Mahmoodi
a476051c48 add fn refundGas 2024-03-14 16:23:56 -04:00
Sina Mahmoodi
94fc0b4a9e replace opcode with byte
# Conflicts:
#	core/tracing/hooks.go
#	core/vm/evm.go
#	core/vm/instructions.go
#	eth/tracers/js/tracer_test.go
2024-03-14 16:23:54 -04:00
Sina Mahmoodi
5c6fb316b7 rm OnKeccakPreimage
# Conflicts:
#	core/tracing/hooks.go
2024-03-14 16:16:43 -04:00
Sina Mahmoodi
03e48ee451 rename tracer methods to On pattern
# Conflicts
#	core/vm/interpreter.go
#	eth/tracers/directory/noop.go
#	eth/tracers/js/goja.go
#	eth/tracers/live/noop.go
#	eth/tracers/logger/logger.go
#	eth/tracers/logger/logger_json.go
#	eth/tracers/native/4byte.go
#	eth/tracers/native/call.go
#	eth/tracers/native/call_flat.go
#	eth/tracers/native/mux.go
2024-03-14 16:16:18 -04:00
Sina Mahmoodi
25a3a744c3 rename Capture hooks to On
# Conflicts:
#	cmd/evm/internal/t8ntool/execution.go
#	core/vm/instructions.go
#	eth/tracers/directory/noop.go
#	eth/tracers/internal/tracetest/calltrace_test.go
#	eth/tracers/internal/tracetest/flat_calltrace_test.go
#	eth/tracers/internal/tracetest/prestate_test.go
#	eth/tracers/js/goja.go
#	eth/tracers/js/tracer_test.go
#	eth/tracers/live/noop.go
#	eth/tracers/native/4byte.go
#	eth/tracers/native/call.go
#	eth/tracers/native/call_flat.go
#	eth/tracers/native/mux.go
#	eth/tracers/native/prestate.go
2024-03-14 16:07:18 -04:00
Sina Mahmoodi
a2ad953d21 rm old logger file 2024-03-14 16:03:37 -04:00
Sina Mahmoodi
688f0b9654 rename scopeContext to opContext 2024-03-14 16:03:07 -04:00
Sina Mahmoodi
39fc9dcafb move logger interface to core/tracing
# Conflicts:
#	cmd/evm/internal/t8ntool/execution.go
#	consensus/beacon/consensus.go
#	consensus/ethash/consensus.go
#	consensus/misc/dao.go
#	core/evm.go
#	core/genesis.go
#	core/state/state_object.go
#	core/state/state_test.go
#	core/state/statedb.go
#	core/state/statedb_fuzz_test.go
#	core/state/statedb_test.go
#	core/state/sync_test.go
#	core/state/trie_prefetcher_test.go
#	core/state_transition.go
#	core/txpool/blobpool/blobpool_test.go
#	core/txpool/legacypool/legacypool2_test.go
#	core/txpool/legacypool/legacypool_test.go
#	core/vm/evm.go
#	core/vm/instructions.go
#	core/vm/interface.go
#	eth/api_debug_test.go
#	internal/ethapi/api.go
#	tests/block_test_util.go
#	tests/state_test_util.go
2024-03-14 15:59:21 -04:00
Sina Mahmoodi
e1c669b3aa moaar fixes
# Conflicts:
#	core/state/state_test.go
#	core/state/statedb_fuzz_test.go
#	core/state/statedb_test.go
#	core/state/sync_test.go
#	core/state/trie_prefetcher_test.go
#	core/txpool/blobpool/blobpool_test.go
#	core/txpool/legacypool/legacypool2_test.go
#	core/txpool/legacypool/legacypool_test.go
#	eth/api_debug_test.go
2024-03-14 13:56:15 -04:00
Sina Mahmoodi
29ebfb30c3 fixes, rm t8ntool tracewriter
# Conflicts:
#	cmd/evm/internal/t8ntool/execution.go
#	cmd/evm/internal/t8ntool/transition.go
#	core/vm/instructions.go
#	eth/tracers/internal/tracetest/calltrace_test.go
#	eth/tracers/internal/tracetest/flat_calltrace_test.go
#	eth/tracers/internal/tracetest/prestate_test.go
#	eth/tracers/js/tracer_test.go
#	eth/tracers/logger/logger_test.go
#	eth/tracers/tracers_test.go
#	tests/block_test_util.go
#	tests/state_test_util.go
2024-03-14 13:51:16 -04:00
Sina Mahmoodi
e0b96540b7 Add canceler interface 2024-03-14 13:42:40 -04:00
Sina Mahmoodi
4e43718bd0 full struct-based tracing infra
# Conflicts:
#	consensus/beacon/consensus.go
#	consensus/ethash/consensus.go
#	consensus/misc/dao.go
#	core/blockchain.go
#	core/evm.go
#	core/genesis.go
#	core/state/dump.go
#	core/state/state_object.go
#	core/state/statedb.go
#	core/state_transition.go
#	core/vm/evm.go
#	core/vm/instructions.go
#	core/vm/interface.go
#	internal/ethapi/api.go
2024-03-14 12:09:18 -04:00
Sina Mahmoodi
4df6904051 use struct for tracing events
# Conflicts:
#	core/blockchain.go
#	core/state/state_object.go
#	core/state/statedb.go
2024-03-14 11:57:58 -04:00
Matthieu Vachon
39b25c9163 Merge remote-tracking branch 'sei/master' into extended-tracer-sei
# Conflicts:
#	core/vm/contracts.go
#	core/vm/evm.go
2024-02-22 17:03:04 -05:00
codchen
6f9b23cefe pass value to precompile calls 2024-02-22 15:30:53 +08:00
Matthieu Vachon
301839fbfe Merge branch 'extended-tracer-backport-1.13.5' into release/sei-1.x-fh3.0
# Conflicts:
#	accounts/abi/bind/backends/simulated.go
#	cmd/geth/config.go
#	consensus/beacon/consensus.go
#	consensus/ethash/consensus.go
#	core/state_processor.go
#	core/vm/contracts.go
#	core/vm/contracts_test.go
#	core/vm/evm.go
#	eth/tracers/api.go
#	eth/tracers/js/goja.go
#	lib/ethapi/api.go
#	light/odr_test.go
2024-02-06 15:18:47 -05:00
Matthieu Vachon
7f8926e716 Backporting extended-tracer branch
We backported branch `extended-tracer` at commit 3078dfe80b back to v1.13.5 of Geth.

To achieve the backport, we did:
- git checkout -b extended-tracer-squashed
- git reset --hard 3078dfe80b
- git reset --mixed fc380f52ef # This was the latest merged commit not from `extended-tracer` branch
- git commit -A -m "<This message>"
- git checkout v1.13.5
- git checkout -b extended-tracer-backport-v1.13.5
- git cherry-pick extended-tracer-squashed
2024-02-06 13:06:08 -05:00
codchen
39ab532d6e Set EVM in StateDB in gasestimator 2024-01-30 13:42:33 +08:00
codchen
47856d75b3 pass orig caller to precompile 2024-01-18 11:34:18 +08:00
codchen
5d14fa58be Pass IsDelegateCall to precompile calls 2024-01-18 11:24:44 +08:00
codchen
b19992f4b3 Send correct sender to precompile in delegatecall 2024-01-08 11:29:52 +08:00
codchen
10ddd7304d add precompile interface with dynamically-calculated gas 2024-01-04 16:04:01 +08:00
codchen
7654bc2cb9 resolve conflicts 2023-12-12 14:32:36 +08:00
codchen
9ecc4274eb make setDefaults public 2023-12-12 10:58:59 +08:00
codchen
43497a4c38 Pass sender to precompile Run() 2023-12-12 10:58:59 +08:00
codchen
42d0052297 fix import 2023-12-12 10:52:36 +08:00
codchen
d04ef5cf81 Use interface as Copy() result 2023-12-12 10:52:35 +08:00
codchen
16a8208f36 use interface instead of concrete state type 2023-12-12 10:52:02 +08:00
codchen
ff86dbf72a Pass EVM pointer when running precompile 2023-12-12 10:46:41 +08:00
Martin Holst Swende
2391fbc676
tests/fuzzers: move fuzzers into native packages (#28467)
This PR moves our fuzzers from tests/fuzzers into whatever their respective 'native' package is.

The historical reason why they were placed in an external location, is that when they were based on go-fuzz, they could not be "hidden" via the _test.go prefix. So in order to shove them away from the go-ethereum "production code", they were put aside.

But now we've rewritten them to be based on golang testing, and thus can be brought back. I've left (in tests/) the ones that are not production (bls128381), require non-standard imports (secp requires btcec, bn256 requires gnark/google/cloudflare deps).

This PR also adds a fuzzer for precompiled contracts, because why not.

This PR utilizes a newly rewritten replacement for go-118-fuzz-build, namely gofuzz-shim, which utilises the inputs from the fuzzing engine better.
2023-11-14 14:34:29 +01:00
Sina Mahmoodi
e803ef09ad
eth/tracers/js: fix isPush for push0 (#28520)
Fixes so that `push0` opcode is correctly reported as `true` by the `IsPush` function

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
2023-11-14 13:14:38 +01:00
Péter Szilágyi
470dba8fc1
core/vm: set basefee to 0 internally on eth_call (#28470)
* core/vm: set basefee to 0 internally on eth_call

* core: nicer 0-basefee, make it work for blob fees too

* internal/ethapi: make tests a bit more complex

* core: fix blob fee checker

* core: make code a bit more readable

* core: fix some test error strings

* core/vm: Get rid of weird comment

* core: dict wrong typo
2023-11-08 11:22:08 +02:00
lmittmann
a3be38127c
core/vm: performance tweak of OpCode.String() (#28453)
make `opCodeToString` a `[256]string` array

Co-authored-by: lmittmann <lmittmann@users.noreply.github.com>
2023-11-02 08:54:28 +02:00
kevaundray
a6a0ae45b6
crypto/kzg4844: use the new trusted setup file and format (#28383)
Changes the trusted_setup to the one created during the kzg-ceremony. The trusted setup file can be found in the consensus specs: https://github.com/ethereum/consensus-specs/blob/dev/presets/mainnet/trusted_setups/trusted_setup_4096.json
---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2023-10-22 16:05:04 +02:00