Matthieu Vachon
ecc78f5dd0
Merge branch 'extended-tracer-struct' into firehose-fh3.0
2024-03-18 15:46:07 -04:00
Martin Holst Swende
4f87f174b3
eth/tracers, cmd/evm: unexport JSONlogger
2024-03-18 17:33:55 +01:00
Matthieu Vachon
b1d1d36dc4
Merge branch 'firehose-fh3.0-backport-1.13.5' into firehose-fh3.0
...
# Conflicts:
# accounts/abi/bind/backends/simulated.go
# cmd/evm/internal/t8ntool/execution.go
# cmd/evm/internal/t8ntool/flags.go
# cmd/evm/internal/t8ntool/transition.go
# cmd/geth/snapshot.go
# consensus/beacon/consensus.go
# consensus/ethash/consensus.go
# consensus/misc/dao.go
# core/blockchain.go
# core/chain_makers.go
# core/evm.go
# core/genesis.go
# core/genesis_test.go
# core/state/dump.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/tracing/hooks.go
# core/txpool/blobpool/blobpool_test.go
# core/txpool/legacypool/legacypool2_test.go
# core/txpool/legacypool/legacypool_test.go
# core/types/account.go
# core/vm/errors.go
# core/vm/evm.go
# core/vm/instructions.go
# core/vm/interface.go
# core/vm/interpreter.go
# eth/api_debug_test.go
# eth/tracers/api.go
# eth/tracers/directory/util_test.go
# eth/tracers/firehose.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/logger/logger.go
# eth/tracers/logger/logger_test.go
# eth/tracers/native/call_flat.go
# eth/tracers/native/prestate.go
# eth/tracers/tracers_test.go
# go.mod
# internal/ethapi/api.go
# light/odr_test.go
# miner/worker.go
# params/version.go
# tests/block_test_util.go
# tests/state_test_util.go
2024-03-15 12:48:29 -04:00
Matthieu Vachon
5cf6340406
Fixed new keccak256 implementation that wasn't working properly
2024-03-15 10:57:39 -04:00
Matthieu Vachon
d673f1927c
Added Firehose 3.0 backport tracer
2024-03-15 10:56:57 -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
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
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
7190602bd2
rm embedding of noop tracer
2024-03-14 16:16:20 -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
688f0b9654
rename scopeContext to opContext
2024-03-14 16:03:07 -04:00
Sina Mahmoodi
d4ec634c05
rename GetLogger to Hooks
...
# Conflicts:
# eth/tracers/logger/access_list_tracer.go
# eth/tracers/logger/logger.go
# eth/tracers/logger/logger_json.go
# eth/tracers/logger/logger_test.go
# eth/tracers/tracers_test.go
# internal/ethapi/api.go
2024-03-14 16:03:05 -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
b202e8ab74
renaming GetLogger
...
# Conflicts:
# cmd/evm/internal/t8ntool/transition.go
# eth/tracers/logger/logger_test.go
# eth/tracers/tracers_test.go
2024-03-14 13:58:26 -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
f1027b7c0a
fix goja scope object wrappers
2024-03-14 13:42:40 -04:00
Sina Mahmoodi
6013241175
fix memory copy util func
2024-03-14 13:42:40 -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
Sina Mahmoodi
8ec4560e17
refactor onBlockStart params, new skip method
2024-03-14 11:54:59 -04:00
Sina Mahmoodi
b210cc761d
remove onBeaconBlockRoot events
2024-03-14 11:54:59 -04:00
Sina Mahmoodi
d17940d2e7
minor fix
2024-03-14 11:54:59 -04:00
Sina Mahmoodi
318dc84314
add config for tracers
2024-03-14 11:54:59 -04:00
Matthieu Vachon
7b77261b7c
Added back OnNewAccount which is Firehose concept so I left it out of the merge commit just before this one
2024-03-13 16:24:14 -04:00
Matthieu Vachon
f47d2fc315
Merge branch 'extended-tracer-struct' into firehose-fh3.0
...
# Conflicts:
# core/blockchain.go
# core/state/statedb.go
# eth/backend.go
# eth/tracers/live/printer.go
# go.mod
# go.sum
2024-03-13 16:23:13 -04:00
Sina Mahmoodi
0b5975fee3
fix merge conflict
2024-03-13 12:48:34 +01:00
Sina Mahmoodi
65bdbc175f
fix lint issue
2024-03-13 12:45:22 +01:00
Sina M
eff424cc30
eth/tracers: fix concurrency issue for JS-tracing a block ( #29238 )
...
This change fixes a concurrency-issue where JS-tracers were accessing the block-ctx GetHash function in a in parallel, which is not safe.
2024-03-13 07:40:02 +01:00
Sina Mahmoodi
73ca96b97e
resolve merge conflict
2024-03-12 17:55:17 +01:00
Sina Mahmoodi
eeb0a46429
rm canceler
2024-03-07 13:08:27 +01:00
Sina Mahmoodi
935ff70d6d
replace opcode with byte
2024-03-07 10:30:13 +01:00
Sina Mahmoodi
1d0101969a
rm OnKeccakPreimage
2024-03-06 17:08:00 +01:00
Sina Mahmoodi
73595f0911
rm embedding of noop tracer
2024-03-06 16:44:19 +01:00
Sina Mahmoodi
8b3cddabb5
rename tracer methods to On pattern
2024-03-06 16:34:18 +01:00
Sina Mahmoodi
37ce159500
rm OnStart and onEnd
2024-03-06 15:49:49 +01:00
Delweng
6e379b6fc7
eth/tracers: prestate tracer add blob fee ( #29168 )
...
* eth/tracers: prestate balance add blob fee
Signed-off-by: jsvisa <delweng@gmail.com>
* eth/tracers: prestate test support blob tx
Signed-off-by: jsvisa <delweng@gmail.com>
* eth/tracers: add prestate blob tx test
Signed-off-by: jsvisa <delweng@gmail.com>
---------
Signed-off-by: jsvisa <delweng@gmail.com>
2024-03-06 14:36:12 +02:00
Undefinedor
a6d6e8ac41
rpc: remove deprecated method "Notifier.Closed" ( #29162 )
2024-03-05 14:44:23 +01:00
Andrei Silviu Dragnea
19607d1a10
eth/tracers: Fix prestateTracer pre nonce on contract creation ( #29099 )
...
The prestateTracer was reporting an inaccurate nonce for the contract being created in
post EIP-158 transactions. Correct nonce is 0, due to the issue nonce was being reported as 1.
2024-03-04 20:21:43 +01:00
Sina Mahmoodi
923c180058
rename Capture hooks to On
2024-02-29 17:18:43 +01:00
Sina Mahmoodi
f358e57490
rename scopeContext to opContext
2024-02-29 15:13:03 +01:00
Sina Mahmoodi
507c072b3b
rename GetLogger to Hooks
2024-02-28 19:41:58 +01:00
Sina Mahmoodi
a2829c6f49
rename LiveLogger to hooks
2024-02-28 19:38:04 +01:00
Sina Mahmoodi
7d8db9b503
move logger interface to core/tracing
2024-02-28 19:34:49 +01:00
Sina Mahmoodi
d65bad2f62
renaming GetLogger
2024-02-28 19:27:39 +01:00
Sina Mahmoodi
8cc747f439
moaar fixes
2024-02-28 19:20:17 +01:00
Sina Mahmoodi
a1877ab520
fixes, rm t8ntool tracewriter
2024-02-27 20:31:01 +01:00
Sina Mahmoodi
60c29ac5a2
fix goja scope object wrappers
2024-02-27 16:51:47 +01:00
Sina Mahmoodi
22234e9cc1
fix memory copy util func
2024-02-27 16:32:21 +01:00
Andrei Silviu Dragnea
5a0f468f8c
eth/tracers: Fix callTracer logs on onlyTopCall == true ( #29068 )
2024-02-27 10:29:12 +01:00
ArtificialPB
e47a7c22c4
internal/ethapi: use overriden baseFee for gasPrice ( #29051 )
...
eth_call and debug_traceCall allow users to override various block fields, among them base fee. However the overriden base fee was not considered for computing the effective gas price of that message, and instead base fee of the base block was used. This has been fixed in this commit.
2024-02-22 14:39:22 +01:00
Sina Mahmoodi
f434c8df56
Add canceler interface
2024-02-21 18:54:15 +01:00
Sina Mahmoodi
fc35780124
full struct-based tracing infra
2024-02-21 18:47:59 +01:00
Sina Mahmoodi
8997f51d49
Merge branch 'extended-tracer' into extended-tracer-struct
2024-02-16 19:09:10 +01:00
Sina Mahmoodi
490efc5f21
resolve merge conflict
2024-02-16 19:08:41 +01:00
Sina Mahmoodi
95741b1844
core: move genesis alloc types to core/types ( #29003 )
...
We want to use these types in public user-facing APIs, so they shouldn't be in core.
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-02-16 19:05:33 +01:00
Sina Mahmoodi
50095906e2
use struct for tracing events
2024-02-16 11:20:56 +01:00
Sina Mahmoodi
5f0a5437e6
refactor onBlockStart params, new skip method
2024-02-15 16:22:59 +01:00
Sina Mahmoodi
3ba6b92dfb
remove onBeaconBlockRoot events
2024-02-15 16:05:55 +01:00
Sina Mahmoodi
35291e6a8c
resolve merge conflict
2024-02-15 10:22:56 +01:00
Martin HS
8321fe2fda
tests: fix goroutine leak related to state snapshot generation ( #28974 )
...
---------
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-02-14 17:02:56 +01:00
Sina Mahmoodi
0db7a19f33
minor fix
2024-02-14 16:54:51 +01:00
Sina Mahmoodi
674a38ed60
add config for tracers
2024-02-14 16:52:10 +01:00
Sina Mahmoodi
2264a9c3fe
fix mdLogger
...
Backport of cf6a31514b
2024-02-09 16:08:43 -05:00
Sina Mahmoodi
97e9a8b315
fix blockchain -> logger circular import
...
Backport of 03206befb9
2024-02-09 16:07:56 -05:00
Sina Mahmoodi
cf6a31514b
fix mdLogger
2024-02-09 11:19:56 +01:00
Sina Mahmoodi
03206befb9
fix blockchain -> logger circular import
2024-02-09 11:02:39 +01:00
Matthieu Vachon
7ff2ae6924
indicate Known block
...
Backport of 056f229260
2024-02-08 16:04:15 -05:00
Matthieu Vachon
31b3b7dca3
rm OnNewAccount
...
Backport of 57cd0c30df
2024-02-08 15:57:12 -05:00
Sina Mahmoodi
27f662d96c
fix merge conflict
2024-02-08 19:07:00 +01:00
Sina Mahmoodi
056f229260
indicate known block
2024-02-08 17:20:53 +01:00
Sina Mahmoodi
57cd0c30df
rm OnNewAccount
2024-02-08 16:30:14 +01:00
Matthieu Vachon
9f71824d8c
Backported commits from extended-tracer
...
- 6c44a594f4
- 188cd4182e
- f3c0a89b57
- 95b50299a5
- 2cc09548bb
2024-02-06 15:36:12 -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
Sina Mahmoodi
2cc09548bb
rename
2024-02-06 17:33:18 +01:00
Sina Mahmoodi
95b50299a5
replace printer with noop live tracer
2024-02-06 17:31:33 +01:00
Sina Mahmoodi
f3c0a89b57
add OnBlockchainInit for chainConfig
2024-02-06 17:21:52 +01:00
Dimitris Apostolou
8fd43c8013
all: fix typos in comments ( #28881 )
2024-02-05 22:16:32 +01:00
Matthieu Vachon
a46903cf0c
Reduce amount of changes to Geth Live Tracer to keep Firehose backward compatibility
...
We removed the `precompile` check on `OnNewAccount` and moved it to the Firehose tracer directly. This way, we can remove our custom logic that toggle the check at the tracing code level and we can instead move the logic of backward compatibility back `FirehoseTracer`.
Refactored a bit also how precompiles are check. We moved the precompiles checker up to the block level now that `chainConfig` is available on `OnBlockStart` meaning we can extract the list of active precompiles. However, to make it work, we had to modify `OnGenesisBlock` to also receive `chainConfig` parameter, I've ask to add it to the geth codebase directly.
2024-02-05 12:01:21 -05:00
Matthieu Vachon
8767058368
Merge branch 'extended-tracer' into firehose-fh3.0
...
# Conflicts:
# cmd/evm/internal/t8ntool/execution.go
# consensus/beacon/consensus.go
# consensus/ethash/consensus.go
# consensus/misc/dao.go
# core/genesis.go
# core/state/statedb.go
# core/state/statedb_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/interface.go
# tests/state_test_util.go
2024-02-02 15:08:47 -05:00
Sina Mahmoodi
56862cf07f
emit onNewAccount when reseting account
2024-01-30 16:36:14 +01:00
Sina Mahmoodi
4c1d675041
resolve merge conflict
2024-01-29 20:00:43 +01:00
Matthieu Vachon
8849451b97
Updated to supported new Cancun fork
2024-01-24 14:05:13 -05:00
Matthieu Vachon
213e30cebe
Updated when FIRE INIT is actually printed
...
The tracer will now keep the state of wheter the init has been sent or not and will emit it prior sending the very first block out.
2024-01-24 14:04:39 -05:00
Martin HS
a5a4fa7032
all: use uint256 in state ( #28598 )
...
This change makes use of uin256 to represent balance in state. It touches primarily upon statedb, stateobject and state processing, trying to avoid changes in transaction pools, core types, rpc and tracers.
2024-01-23 14:51:58 +01:00
rjl493456442
78a3c32ef4
core, core/rawdb, eth/sync: no tx indexing during snap sync ( #28703 )
...
This change simplifies the logic for indexing transactions and enhances the UX when transaction is not found by returning more information to users.
Transaction indexing is now considered as a part of the initial sync, and `eth.syncing` will thus be `true` if transaction indexing is not yet finished. API consumers can use the syncing status to determine if the node is ready to serve users.
2024-01-22 21:05:18 +01:00
Arun Dhyani
80545c7ca0
newAccount log bugfix
2024-01-17 13:46:41 +08:00
Arun Dhyani
01761849ba
Merge remote-tracking branch 'sf/firehose-fh3.0' into fix/firehose
2024-01-17 09:31:17 +08:00
Matthieu Vachon
b5691516fb
Removed dependency on github.com/streaminfast/firehose-ethereum generating the Protobuf struct in go-ethereum directly
2024-01-16 13:34:27 -05:00
Paul Lange
c66ca8bf7a
tracer: use proper base fee in tests ( #28775 )
...
In the tracing tests, the base fee was generally set to nil. This commit changes this to pass the proper base instead, and fixes the few tests which become broken by the change.
2024-01-16 12:20:26 +01:00
Arun Dhyani
0ed6e530ac
executedCode fixes
2024-01-16 16:10:04 +08:00
Matthieu Vachon
8545daf9f9
Fixed some small stuff while merging extended-tracer in
2024-01-15 14:03:07 -05:00
Matthieu Vachon
35c5b287f0
Merge branch 'extended-tracer' into firehose-fh3.0
...
# Conflicts:
# go.sum
2024-01-15 13:25:36 -05:00
Matthieu Vachon
306a1fca64
Merge branch 'extended-tracer' into firehose-fh3.0
...
# Conflicts:
# go.mod
# go.sum
2024-01-15 12:40:19 -05:00
Sina Mahmoodi
c3319301cc
add test case for frontier create out of storage
2024-01-15 13:37:39 +03:30
Sina Mahmoodi
580f02527e
has call reverted to snapshot
2024-01-12 17:53:12 +03:30
Matthieu Vachon
2bb31d4ac1
Ported some missing legacy fixes to keep 1:1 with Firehose legacy tracer
2024-01-11 21:26:55 -05:00
Matthieu Vachon
6573cb21a5
Fixed KecakkPreimages to fit with legacy Firehose behavior that had a bug
2024-01-11 21:20:43 -05:00
Matthieu Vachon
4862eeba1d
Updated to really use Firehose protocol 3.0
2024-01-10 21:28:08 -05:00
Matthieu Vachon
8677894b94
Removed special delegate value logic as it's not needed, the tracer does the correct thing
2024-01-10 20:52:27 -05:00
Matthieu Vachon
4c221a04d4
Fix for code storage out of gas error before homestead
2024-01-09 14:52:39 -05:00
Matthieu Vachon
3e44bf5895
Added more tracing to log computation
2024-01-08 11:58:46 -05:00
Matthieu Vachon
3181acac69
Added mistmatched transaction hash when log are not aligned
2023-12-12 21:26:52 -05:00
Sina Mahmoodi
a52c80dec5
Fix test case
2023-12-12 11:34:41 +03:30
Sina Mahmoodi
0d254e4983
fix test
2023-12-11 16:17:49 +03:30
Sina Mahmoodi
0484068df5
fix lint issues
2023-12-11 14:17:29 +03:30
Matthieu Vachon
a7f50134bd
Account creations can happen before a transaction starts
2023-12-05 10:32:00 -05:00
Sina Mahmoodi
c5e407ba66
resolve merge conflicts
2023-12-05 18:13:41 +03:30
Sina Mahmoodi
f862531c25
rm chainConfig from OnGenesisBlock
2023-12-05 16:49:03 +03:30
Sina Mahmoodi
9e5c96fdff
add chainConfig to block events
2023-12-05 16:31:16 +03:30
Martin Holst Swende
3dc071e036
eth/tracers/logger: make structlog/json-log stack hex again ( #28628 )
...
* common/hexutil: define hex wrappers for uint256.Int
* eth/tracers/logger: make structlog/json-log stack hex again
* common/hexutil: goimports
2023-12-05 09:37:48 +01:00
Delweng
5fb8ebc9ec
eth/tracers: tx-level state in debug_traceCall ( #28460 )
2023-12-01 16:38:52 +03:30
Matthieu Vachon
c36b44073f
Ported back some fixes from Erigon extended native tracer
2023-11-30 10:53:31 -05:00
Matthieu Vachon
e51cbb0c95
Merge branch 'extended-tracer' into firehose-fh3.0
...
# Conflicts:
# go.mod
# go.sum
2023-11-29 13:50:08 -05:00
Sina Mahmoodi
bbc5db8405
eth/tracers/js: fix type inconsistencies ( #28488 )
...
This change fixes two type-inconsistencies in the JS tracer:
- In most places we return byte arrays as a `Uint8Array` to the tracer. However it seems we missed doing the conversion for `ctx` fields which are passed to the tracer during `result`. They are passed as simple arrays. I think Uint8Arrays are more suitable and we should change this inconsistency. Note: this will be a breaking-change. But I believe the effect is small. If we look at our tracers we see that these fields (`ctx.from`, `ctx.to`, etc.) are used in 2 ways. Passed to `toHex` which takes both array or buffer. Or the length was measured which is the same for both types.
- The `slice` taking in `int, int` params versus `memory.slice` taking `int64, int64` params. I suggest changing `slice` types to `int64`. This should have no effect almost in any case.
2023-11-28 15:00:35 +01:00
Sina Mahmoodi
8610f8f68c
add hooks for beacon block root processing
2023-11-24 19:08:42 +03:30
Sina Mahmoodi
5bc3f62647
move makeTest to own file
2023-11-24 18:29:27 +03:30
Sina Mahmoodi
8a1f67c7c8
forgot prestate testcase
2023-11-24 18:21:12 +03:30
Sina Mahmoodi
9c00b1290b
fix merge conflict
2023-11-24 16:09:47 +03:30
Sina Mahmoodi
cc6b68eb3b
Fix prestate create issue, add test
2023-11-11 16:29:50 +03:00
Sina Mahmoodi
0d268b796c
fix TxStart for traceCall
2023-11-08 19:28:42 +03:00
Sina Mahmoodi
dc1175e3e1
rm unnecessary line
...
Co-authored-by: Delweng <delweng@gmail.com>
2023-11-07 16:35:13 +03:00
Sina Mahmoodi
e4399a672a
Use applyTransaction in tracer instead of applyMessage
2023-11-03 16:59:24 +01:00
Alvaro Sevilla
b1cec853be
eth/tracers: add position field for callTracer logs ( #28389 )
...
Currently, one can use the "withLogs" parameter to include logs in the
callTracer results, which allows the user to see at which trace level
was each log emitted.
This commit adds a position field to the logs which determine
the exact ordering of a call's logs and its subcalls. This would
be useful e.g. for explorers wishing to display the flow of execution.
Co-authored-by: jsvisa <delweng@gmail.com>
2023-11-03 10:28:27 +01:00
Sina Mahmoodi
6ee4fb8eac
resolve merge conflicts
2023-09-13 16:17:36 +02:00
Matthieu Vachon
8af369e181
Merge branch 'extended-tracer' into feature/firehose-extended-tracer
...
# Conflicts:
# core/state_transition.go
# core/vm/contract.go
# core/vm/evm.go
# core/vm/instructions.go
# core/vm/interpreter.go
# core/vm/logger.go
2023-09-12 14:07:11 -04:00
Matthieu Vachon
ff3c15ff90
Full OnGasConsumed loop and added GasChangeReason ( #16 )
2023-09-12 17:19:15 +02:00
Matthieu Vachon
ca6c36384b
Updated to latest firehose-ethereum/types
2023-09-11 12:31:32 -04:00
Matthieu Vachon
98dc951764
Fixed wrong gas change since new PR update around that
2023-09-11 10:54:30 -04:00
Matthieu Vachon
31f1a01ec5
Merge branch 'feature/gas-full-cycle-and-reason' into feature/firehose-extended-tracer
...
# Conflicts:
# core/blockchain.go
# core/state_transition.go
# core/vm/contracts.go
# core/vm/evm.go
# core/vm/instructions.go
# core/vm/interpreter.go
# core/vm/logger.go
# core/vm/operations_acl.go
# eth/backend.go
# eth/tracers/logger/access_list_tracer.go
# eth/tracers/logger/logger.go
# eth/tracers/logger/logger_json.go
2023-09-11 10:27:01 -04:00
Matthieu Vachon
daf3f63421
Merge remote-tracking branch 's1na/extended-tracer' into feature/gas-full-cycle-and-reason
...
# Conflicts:
# eth/tracers/logger/access_list_tracer.go
# eth/tracers/logger/logger.go
# eth/tracers/logger/logger_json.go
2023-09-01 09:34:29 -04:00
Sina Mahmoodi
9c999c36ff
Use noopTracer as base for loggers
2023-08-31 16:31:30 +02:00
Sina Mahmoodi
659043a1d9
pass tracer name via cli
2023-08-30 18:14:06 +02:00
Matthieu Vachon
5763314b0d
Removed tracer support when doing genesis.Flush(...)
...
The genesis flush do set the logger, but we receive the genesis block allocs via `OnGenesisBlock` meaning it's not necessary to have the logger in the flush.
2023-08-29 16:12:59 -04:00
Matthieu Vachon
d0dbbaf6a5
Change OnGasConsumed(gas, cost uint64, reason) to OnGasChange(old, new uint64, reason)
...
This way, we avoid having a `cost` that is negative which does not make sense for a `uint64`. Having the `old, new` also yields correct value and the delta can then be negative and be holded in a `int64`.
# Conflicts:
# core/vm/evm.go
2023-08-28 19:20:01 -04:00
Matthieu Vachon
01ccd7126e
Change OnGasConsumed(gas, cost uint64, reason) to OnGasChange(old, new uint64, reason)
...
This way, we avoid having a `cost` that is negative which does not make sense for a `uint64`. Having the `old, new` also yields correct value and the delta can then be negative and be holded in a `int64`.
2023-08-28 15:30:10 -04:00
Matthieu Vachon
e0af166ffa
Full OnGasConsumed loop and added GasChangeReason
...
With this change, the full gas loop of a transaction can be tracked going from initial balance (`gasLimit`) back down to 0.
I validated on my regression test suite that those conditions applied to all transactions I have:
- First `OnGasConsumed` is always going from 0 -> `trx.gasLimit`
- Last `OnGasConsumed` "new value" is always 0
- trx.gasLimit - last balance of last `OnGasConsumed` is equal to `trx.gasUsed`
The addition of `reason` make it possible for a logger to filter out unwanted signal, for example one could want to drop all OpCode related gas change and only cares about "transaction" level. The reason is also a good thing for visibility and for creating powerful debug tools for Ethereum transaction execution.
Also, I would like that we change the `OnGasConsumed` logic from `OnGasConsumed(actual, cost uint64, reason)` to `OnGasConsumed(old, new uint64, reason)`. With the new tracing I've done, we now have negative `cost` that needs to be passed around but the `cost` is `uint64` so it creates overflow. Everything works fine if you record the new/old value `gas-cost` as the final value goes back to a valid range. But it's weird for consumer that would log `cost` that it's `18127127187219...`. An alternative would be to accept a `int64` for the cost which is also valid, not full coverage theorically but I don't see why an operation would cost more than i64 max value. Maybe it make more sense than to have signature `OnGasConsumed(gas uint64, cost int64, reason)`, I'm fine with it also, I leave the decision to you.
2023-08-28 15:30:10 -04:00
Felix Lange
9b46986edc
all: use rlp.DecodeBytes instead of rlp.Decode where possible ( #27994 )
2023-08-24 11:47:42 +03:00
Péter Szilágyi
0c6bbeb423
core, eth, trie: expose more detailed dirty ram tracking for diff layers ( #27971 )
2023-08-23 14:08:39 +03:00
Joe Netti
e0b119884c
eth/tracers/js: use t.toBig on ctx.GasPrice for js tracing ( #27903 )
...
This change fixes a bug in js tracer, where `ctx.GasPrice.toString(16)` returns a number string in base `10`.
2023-08-15 14:19:37 -04:00
Péter Szilágyi
be65b47645
all: update golang/x/ext and fix slice sorting fallout ( #27909 )
...
The Go authors updated golang/x/ext to change the function signature of the slices sort method.
It's an entire shitshow now because x/ext is not tagged, so everyone's codebase just
picked a new version that some other dep depends on, causing our code to fail building.
This PR updates the dep on our code too and does all the refactorings to follow upstream...
2023-08-12 00:04:12 +02:00
rjl493456442
503f1f7ada
all: activate pbss as experimental feature ( #26274 )
...
* all: activate pbss
* core/rawdb: fix compilation error
* cma, core, eth, les, trie: address comments
* cmd, core, eth, trie: polish code
* core, cmd, eth: address comments
* cmd, core, eth, les, light, tests: address comment
* cmd/utils: shorten log message
* trie/triedb/pathdb: limit node buffer size to 1gb
* cmd/utils: fix opening non-existing db
* cmd/utils: rename flag name
* cmd, core: group chain history flags and fix tests
* core, eth, trie: fix memory leak in snapshot generation
* cmd, eth, internal: deprecate flags
* all: enable state tests for pathdb, fixes
* cmd, core: polish code
* trie/triedb/pathdb: limit the node buffer size to 256mb
---------
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2023-08-10 22:21:36 +03:00
Matthieu Vachon
db63814064
Now passing finality information if available
2023-08-03 16:39:42 -04:00
Matthieu Vachon
84af9dee0c
Removed a FIXME and improved known Firehose issue description
2023-08-02 14:14:57 -04:00
Matthieu Vachon
1792f99bb0
Few small changes around the patch
2023-08-02 14:07:24 -04:00
Matthieu Vachon
1df06e296d
Make patch simpler, added clear indications where to fix Firehose know instrumentation issues
2023-08-02 13:55:28 -04:00