diff --git a/eth/tracers/firehose.go b/eth/tracers/firehose.go index b5ef9fa5f7..c81d4beb4d 100644 --- a/eth/tracers/firehose.go +++ b/eth/tracers/firehose.go @@ -314,6 +314,7 @@ func (f *Firehose) OnBlockchainInit(chainConfig *params.ChainConfig) { log.Info("Firehose tracer initialized", "chain_id", chainConfig.ChainID, "apply_backward_compatibility", *f.applyBackwardCompatibility, "protocol_version", FirehoseProtocolVersion) } +var gethDevChainID = big.NewInt(1337) var mainnetChainID = big.NewInt(1) var goerliChainID = big.NewInt(5) var sepoliaChainID = big.NewInt(11155111) @@ -1095,10 +1096,10 @@ func (f *Firehose) callStart(source string, callType pbeth.CallType, from common if *f.applyBackwardCompatibility { // Known Firehose issue: The `BeginOrdinal` of the root call is incremented but must - // be assigned back to 0 because of a bug in the console reader. remove on new chain. + // be assigned back to 0 because of a bug in the console reader. // - // New chain integration should remove this `if` statement - if source == "root" { + // However, system calls are not affected by this bug and must keep their ordinal. + if source == "root" && !f.inSystemCall { call.BeginOrdinal = 0 } } @@ -1140,7 +1141,7 @@ func (f *Firehose) getExecutedCode(evm *tracing.VMContext, call *pbeth.Call) boo } if precompile { - firehoseTrace("executed code isprecompile (callType=%s inputLength=%d)", call.CallType.String(), len(call.Input)) + firehoseTrace("executed code is precompile (callType=%s inputLength=%d)", call.CallType.String(), len(call.Input)) return call.CallType != pbeth.CallType_CREATE && len(call.Input) > 0 } @@ -1470,6 +1471,22 @@ func (f *Firehose) OnNewAccount(a common.Address) { return } + if a == params.SystemAddress { + // Old Firehose ignore those, we do the same, this is true only for direct Ethereum (Mainnet, Sepolia and Holesky), + // BNB and Polygon do not have this behavior and emits account creations for the system address + // + // See https://github.com/streamingfast/go-ethereum/blob/30ce26bfaf27af761372409b72c2d58e619775eb/firehose/context.go#L764-L766 + + // TODO: Performance wise, does it make sense cache the chain's comparison into a variable directly, to avoid doing all the compares? + // Technically the right "behavior" could be computed once at start of tracer and then used everywhere without even needing to check + // the chainID as the "behavior" object would have the right behavior for the chain. + // + // For now, shouldn't be a big deal as `OnNewAccount` on the system address is not a common thing. + if f.isChainOneOf(mainnetChainID, sepoliaChainID, holeskyChainID, gethDevChainID) { + return + } + } + accountCreation := &pbeth.AccountCreation{ Account: a.Bytes(), Ordinal: f.blockOrdinal.Next(), @@ -1621,6 +1638,18 @@ func (f *Firehose) ensureInSystemCall() { } } +func (f *Firehose) isChainOneOf(chainIDs ...*big.Int) bool { + f.ensureBlockChainInit() + + for _, chainID := range chainIDs { + if f.chainConfig.ChainID.Cmp(chainID) == 0 { + return true + } + } + + return false +} + func (f *Firehose) panicInvalidState(msg string, callerSkip int) string { caller := "N/A" if _, file, line, ok := runtime.Caller(callerSkip); ok { diff --git a/eth/tracers/firehose_test.go b/eth/tracers/firehose_test.go index c908ed2cdd..681a33cce8 100644 --- a/eth/tracers/firehose_test.go +++ b/eth/tracers/firehose_test.go @@ -149,7 +149,7 @@ func Test_TypesHeader_AllConsensusFieldsAreKnown(t *testing.T) { // On hard-fork, it happens that new fields are added, this test serves as a way to "detect" in code // that the expected fields of `types.Header` changed require.Equal(t, expectedHash, gethHeader.Hash(), - "Geth Header Hash mistmatch, got %q but expecting %q on *types.Header:\n\nGeth Header (from fillNonDefault(new(*types.Header)))\n%s", + "Geth Header Hash mismatch, got %q but expecting %q on *types.Header:\n\nGeth Header (from fillNonDefault(new(*types.Header)))\n%s", gethHeader.Hash().Hex(), expectedHash, asIndentedJSON(t, gethHeader), @@ -176,7 +176,7 @@ func Test_FirehoseAndGethHeaderFieldMatches(t *testing.T) { t, pbFieldCount, gethFieldCount, - fieldsCountMistmatchMessage(t, pbFieldNames, gethFieldNames)) + fieldsCountMismatchMessage(t, pbFieldNames, gethFieldNames)) for pbFieldName := range pbFieldNames { pbFieldRenamedName, found := pbFieldNameToGethMapping[pbFieldName] @@ -228,7 +228,7 @@ func fillAllFieldsWithNonEmptyValues(t *testing.T, structValue reflect.Value, fi } } -func fieldsCountMistmatchMessage(t *testing.T, pbFieldNames map[string]bool, gethFieldNames map[string]bool) string { +func fieldsCountMismatchMessage(t *testing.T, pbFieldNames map[string]bool, gethFieldNames map[string]bool) string { t.Helper() pbRemappedFieldNames := make(map[string]bool, len(pbFieldNames)) diff --git a/eth/tracers/internal/tracetest/firehose/blockchain_test.go b/eth/tracers/internal/tracetest/firehose/blockchain_test.go index cae5c0d240..943da49d21 100644 --- a/eth/tracers/internal/tracetest/firehose/blockchain_test.go +++ b/eth/tracers/internal/tracetest/firehose/blockchain_test.go @@ -1,26 +1,19 @@ package firehose_test import ( - "hash" - "math/big" - "os" "testing" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/consensus/ethash" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/rawdb" "github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/tracing" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/log" - "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rlp" "github.com/ethereum/go-ethereum/tests" "github.com/ethereum/go-ethereum/trie" "github.com/stretchr/testify/require" - "golang.org/x/crypto/sha3" ) func runPrestateBlock(t *testing.T, prestatePath string, hooks *tracing.Hooks) { @@ -89,59 +82,6 @@ func runPrestateBlock(t *testing.T, prestatePath string, hooks *tracing.Hooks) { } } -func newBlockchain(t *testing.T, alloc types.GenesisAlloc, context vm.BlockContext, tracer *tracing.Hooks) (*core.Genesis, *core.BlockChain) { - t.Helper() - - genesis := &core.Genesis{ - Difficulty: new(big.Int).Sub(context.Difficulty, big.NewInt(1)), - Timestamp: context.Time - 1, - Number: new(big.Int).Sub(context.BlockNumber, big.NewInt(1)).Uint64(), - BaseFee: big.NewInt(params.InitialBaseFee), - Coinbase: context.Coinbase, - Config: params.AllEthashProtocolChanges, - Alloc: alloc, - } - - log.SetDefault(log.NewLogger(log.NewTerminalHandlerWithLevel(os.Stderr, log.LevelInfo, false))) - defer log.SetDefault(log.NewLogger(log.DiscardHandler())) - - blockchain, err := core.NewBlockChain(rawdb.NewMemoryDatabase(), core.DefaultCacheConfigWithScheme(rawdb.HashScheme), genesis, nil, ethash.NewFullFaker(), vm.Config{ - Tracer: tracer, - }, nil) - require.NoError(t, err) - - return genesis, blockchain -} - -// testHasher is the helper tool for transaction/receipt list hashing. -// The original hasher is trie, in order to get rid of import cycle, -// use the testing hasher instead. -type testHasher struct { - hasher hash.Hash -} - -// NewHasher returns a new testHasher instance. -func NewHasher() *testHasher { - return &testHasher{hasher: sha3.NewLegacyKeccak256()} -} - -// Reset resets the hash state. -func (h *testHasher) Reset() { - h.hasher.Reset() -} - -// Update updates the hash state with the given key and value. -func (h *testHasher) Update(key, val []byte) error { - h.hasher.Write(key) - h.hasher.Write(val) - return nil -} - -// Hash returns the hash value. -func (h *testHasher) Hash() common.Hash { - return common.BytesToHash(h.hasher.Sum(nil)) -} - var _ core.Validator = (*ignoreValidateStateValidator)(nil) type ignoreValidateStateValidator struct { diff --git a/eth/tracers/internal/tracetest/firehose/firehose_test.go b/eth/tracers/internal/tracetest/firehose/firehose_test.go index 81341b2dc0..624fdfa5cc 100644 --- a/eth/tracers/internal/tracetest/firehose/firehose_test.go +++ b/eth/tracers/internal/tracetest/firehose/firehose_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/consensus" "github.com/ethereum/go-ethereum/consensus/beacon" "github.com/ethereum/go-ethereum/consensus/ethash" "github.com/ethereum/go-ethereum/core" @@ -16,56 +17,10 @@ import ( "github.com/ethereum/go-ethereum/core/vm/program" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/params" - "github.com/ethereum/go-ethereum/trie" "github.com/holiman/uint256" "github.com/stretchr/testify/require" ) -func TestFirehoseChain(t *testing.T) { - context := vm.BlockContext{ - CanTransfer: core.CanTransfer, - Transfer: core.Transfer, - Coinbase: common.Address{}, - BlockNumber: new(big.Int).SetUint64(uint64(1)), - Time: 1, - Difficulty: big.NewInt(2), - GasLimit: uint64(1000000), - BaseFee: big.NewInt(8), - } - - tracer, tracingHooks, onClose := newFirehoseTestTracer(t) - defer onClose() - - genesis, blockchain := newBlockchain(t, types.GenesisAlloc{}, context, tracingHooks) - - block := types.NewBlock(&types.Header{ - ParentHash: genesis.ToBlock().Hash(), - Number: context.BlockNumber, - Difficulty: context.Difficulty, - Coinbase: context.Coinbase, - Time: context.Time, - GasLimit: context.GasLimit, - BaseFee: context.BaseFee, - ParentBeaconRoot: ptr(common.Hash{}), - }, nil, nil, trie.NewStackTrie(nil)) - - blockchain.SetBlockValidatorAndProcessorForTesting( - ignoreValidateStateValidator{core.NewBlockValidator(genesis.Config, blockchain)}, - core.NewStateProcessor(genesis.Config, blockchain.HeaderChain()), - ) - - n, err := blockchain.InsertChain(types.Blocks{block}) - require.NoError(t, err) - require.Equal(t, 1, n) - - genesisLine, blockLines, unknownLines := readTracerFirehoseLines(t, tracer) - require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknownLine) string { return "- '" + string(l) + "'" }), "\n")) - require.NotNil(t, genesisLine) - blockLines.assertEquals(t, filepath.Join("testdata", t.Name()), - firehoseBlockLineParams{"1", "8e6ee4b1054d94df1d8a51fb983447dc2e27a854590c3ac0061f994284be8150", "0", "845bad515694a416bab4b8d44e22cf97a8c894a8502110ab807883940e185ce0", "0", "1000000000"}, - ) -} - func TestFirehosePrestate(t *testing.T) { testFolders := []string{ "./testdata/TestFirehosePrestate/keccak256_too_few_memory_bytes_get_padded", @@ -91,7 +46,6 @@ func TestFirehosePrestate(t *testing.T) { } } - func TestFirehose_EIP7702(t *testing.T) { // Copied from ./core/blockchain_test.go#L4180 (TestEIP7702) @@ -203,15 +157,37 @@ func TestFirehose_EIP7702(t *testing.T) { } }) + assertBlockTracesCorrectly(t, gspec, engine, blocks, "TestEIP7702") +} + +func TestFirehose_SystemCalls(t *testing.T) { + gspec := &core.Genesis{ + Config: params.MergedTestChainConfig, + } + + engine := beacon.New(ethash.NewFaker()) + _, blocks, _ := core.GenerateChainWithGenesis(gspec, engine, 1, func(i int, b *core.BlockGen) {}) + + assertBlockTracesCorrectly(t, gspec, engine, blocks, "TestSystemCalls") +} + +func assertBlockTracesCorrectly(t *testing.T, genesisSpec *core.Genesis, engine consensus.Engine, blocks []*types.Block, goldenDir string) { + t.Helper() + tracer, tracingHooks, onClose := newFirehoseTestTracer(t) defer onClose() - chain, err := core.NewBlockChain(rawdb.NewMemoryDatabase(), nil, gspec, nil, engine, vm.Config{Tracer: tracingHooks}, nil) + chain, err := core.NewBlockChain(rawdb.NewMemoryDatabase(), nil, genesisSpec, nil, engine, vm.Config{Tracer: tracingHooks}, nil) require.NoError(t, err, "failed to create tester chain") + chain.SetBlockValidatorAndProcessorForTesting( + ignoreValidateStateValidator{core.NewBlockValidator(genesisSpec.Config, chain)}, + core.NewStateProcessor(genesisSpec.Config, chain.HeaderChain()), + ) + defer chain.Stop() n, err := chain.InsertChain(blocks) require.NoError(t, err, "failed to insert chain block %d", n) - assertBlockEquals(t, tracer, filepath.Join("testdata", "TestEIP7702"), len(blocks)) + assertBlockEquals(t, tracer, filepath.Join("testdata", goldenDir), len(blocks)) } diff --git a/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.1.golden.json b/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.1.golden.json index d330fd9248..614a0b8abd 100644 --- a/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.1.golden.json +++ b/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.1.golden.json @@ -1,297 +1,301 @@ { - "hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", - "number": "1", - "size": "1190", - "header": { - "parentHash": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=", - "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", - "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "stateRoot": "wFieFJlWOhntuAXVWTxqg5Uur7kaXrFRERwFB8+qscc=", - "transactionsRoot": "L6HG4v+Zoguv352C8ZdQGQ4tE5BJdzCJVbfWBHMquN0=", - "receiptRoot": "6LQ+xgZZXKAlBStw088D6A2kWiz7g+TtQlAALnPMSi4=", - "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "difficulty": { - "bytes": "AA==" + "hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", + "number": "1", + "size": "1190", + "header": { + "parentHash": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=", + "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", + "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "stateRoot": "wFieFJlWOhntuAXVWTxqg5Uur7kaXrFRERwFB8+qscc=", + "transactionsRoot": "L6HG4v+Zoguv352C8ZdQGQ4tE5BJdzCJVbfWBHMquN0=", + "receiptRoot": "6LQ+xgZZXKAlBStw088D6A2kWiz7g+TtQlAALnPMSi4=", + "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "difficulty": { + "bytes": "AA==" }, - "number": "1", - "gasLimit": "4712388", - "gasUsed": "142021", - "timestamp": "1970-01-01T00:00:10Z", - "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", - "baseFeePerGas": { - "bytes": "NCdwwA==" + "number": "1", + "gasLimit": "4712388", + "gasUsed": "142021", + "timestamp": "1970-01-01T00:00:10Z", + "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", + "baseFeePerGas": { + "bytes": "NCdwwA==" }, - "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", - "blobGasUsed": "0", - "excessBlobGas": "0", - "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" + "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", + "blobGasUsed": "0", + "excessBlobGas": "0", + "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" }, - "transactionTraces": [ + "transactionTraces": [ { - "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "gasPrice": { - "bytes": "NCdwwg==" + "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "gasPrice": { + "bytes": "NCdwwg==" }, - "gasLimit": "500000", - "r": "E2l+Qpz16QzQhLJM+8gu8vd/lpMS1JAC0/hIlSNzFeg=", - "s": "N9pmx9wBwi0vXsT283fImtj6D4zPzYK3ZFXwBhYmbBA=", - "gasUsed": "142021", - "type": "TRX_TYPE_SET_CODE", - "maxFeePerGas": { - "bytes": "ASoF8gA=" + "gasLimit": "500000", + "r": "E2l+Qpz16QzQhLJM+8gu8vd/lpMS1JAC0/hIlSNzFeg=", + "s": "N9pmx9wBwi0vXsT283fImtj6D4zPzYK3ZFXwBhYmbBA=", + "gasUsed": "142021", + "type": "TRX_TYPE_SET_CODE", + "maxFeePerGas": { + "bytes": "ASoF8gA=" }, - "maxPriorityFeePerGas": { - "bytes": "Ag==" + "maxPriorityFeePerGas": { + "bytes": "Ag==" }, - "hash": "alLg5Yk4t0M/5q97S3ye+D/U/jP60tAc1kNI8q4G+G0=", - "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "beginOrdinal": "5", - "endOrdinal": "27", - "status": "SUCCEEDED", - "receipt": { - "cumulativeGasUsed": "142021", - "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + "hash": "alLg5Yk4t0M/5q97S3ye+D/U/jP60tAc1kNI8q4G+G0=", + "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "beginOrdinal": "5", + "endOrdinal": "27", + "status": "SUCCEEDED", + "receipt": { + "cumulativeGasUsed": "142021", + "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" }, - "calls": [ + "calls": [ { - "index": 1, - "callType": "CALL", - "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "gasLimit": "354000", - "gasConsumed": "31526", - "balanceChanges": [ + "index": 1, + "callType": "CALL", + "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "gasLimit": "354000", + "gasConsumed": "31526", + "balanceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "DeC2s6dkAAA=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "DeC2s6dkAAA=" }, - "newValue": { - "bytes": "Dd8ozD895cA=" + "newValue": { + "bytes": "Dd8ozD895cA=" }, - "reason": "REASON_GAS_BUY", - "ordinal": "6" + "reason": "REASON_GAS_BUY", + "ordinal": "6" }, { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "Dd8ozD895b8=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "Dd8ozD895b8=" }, - "newValue": { - "bytes": "DeBFrisGZrU=" + "newValue": { + "bytes": "DeBFrisGZrU=" }, - "reason": "REASON_GAS_REFUND", - "ordinal": "25" + "reason": "REASON_GAS_REFUND", + "ordinal": "25" }, { - "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "newValue": { - "bytes": "BFWK" + "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "newValue": { + "bytes": "BFWK" }, - "reason": "REASON_REWARD_TRANSACTION_FEE", - "ordinal": "26" + "reason": "REASON_REWARD_TRANSACTION_FEE", + "ordinal": "26" } ], - "nonceChanges": [ + "nonceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "newValue": "1", - "ordinal": "8" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "newValue": "1", + "ordinal": "8" }, { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": "1", - "newValue": "2", - "ordinal": "9" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": "1", + "newValue": "2", + "ordinal": "9" }, { - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "newValue": "1", - "ordinal": "11" + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "newValue": "1", + "ordinal": "11" }, { - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "oldValue": "1", - "newValue": "2", - "ordinal": "13" + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "oldValue": "1", + "newValue": "2", + "ordinal": "13" } ], - "codeChanges": [ + "codeChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", - "newHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=", - "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "ordinal": "10" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", + "newHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=", + "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "ordinal": "10" }, { - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", - "newHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=", - "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=", - "ordinal": "12" + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", + "newHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=", + "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=", + "ordinal": "12" }, { - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "oldHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=", - "oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=", - "newHash": "0mhxQ0BYDv3haWHrT7NIuLWUSlfUHjFwuLM/8Jt1SXA=", - "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAu7s=", - "ordinal": "14" + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "oldHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=", + "oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=", + "newHash": "0mhxQ0BYDv3haWHrT7NIuLWUSlfUHjFwuLM/8Jt1SXA=", + "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAu7s=", + "ordinal": "14" } ], - "gasChanges": [ + "gasChanges": [ { - "oldValue": "500000", - "newValue": "354000", - "reason": "REASON_INTRINSIC_GAS", - "ordinal": "7" + "oldValue": "500000", + "newValue": "354000", + "reason": "REASON_INTRINSIC_GAS", + "ordinal": "7" }, { - "oldValue": "353880", - "newValue": "351280", - "reason": "REASON_STATE_COLD_ACCESS", - "ordinal": "16" + "oldValue": "353880", + "newValue": "351280", + "reason": "REASON_STATE_COLD_ACCESS", + "ordinal": "16" }, { - "oldValue": "353980", - "newValue": "5348", - "reason": "REASON_CALL", - "ordinal": "17" + "oldValue": "353980", + "newValue": "5348", + "reason": "REASON_CALL", + "ordinal": "17" }, { - "oldValue": "5348", - "newValue": "322474", - "reason": "REASON_REFUND_AFTER_EXECUTION", - "ordinal": "23" + "oldValue": "5348", + "newValue": "322474", + "reason": "REASON_REFUND_AFTER_EXECUTION", + "ordinal": "23" } ], - "endOrdinal": "24" + "endOrdinal": "24" }, { - "index": 2, - "parentIndex": 1, - "depth": 1, - "callType": "CALL", - "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=", - "value": { - "bytes": "AQ==" + "index": 2, + "parentIndex": 1, + "depth": 1, + "callType": "CALL", + "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=", + "value": { + "bytes": "AQ==" }, - "gasLimit": "339232", - "gasConsumed": "22106", - "storageChanges": [ + "gasLimit": "339232", + "gasConsumed": "22106", + "storageChanges": [ { - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=", - "oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=", - "ordinal": "21" + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=", + "oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=", + "ordinal": "21" } ], - "balanceChanges": [ + "balanceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "Dd8ozD895cA=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "Dd8ozD895cA=" }, - "newValue": { - "bytes": "Dd8ozD895b8=" + "newValue": { + "bytes": "Dd8ozD895b8=" }, - "reason": "REASON_TRANSFER", - "ordinal": "19" + "reason": "REASON_TRANSFER", + "ordinal": "19" }, { - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "oldValue": { - "bytes": "DeC2s6dkAAA=" + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "oldValue": { + "bytes": "DeC2s6dkAAA=" }, - "newValue": { - "bytes": "DeC2s6dkAAE=" + "newValue": { + "bytes": "DeC2s6dkAAE=" }, - "reason": "REASON_TRANSFER", - "ordinal": "20" + "reason": "REASON_TRANSFER", + "ordinal": "20" } ], - "beginOrdinal": "18", - "endOrdinal": "22" + "beginOrdinal": "18", + "endOrdinal": "22" } ], - "setCodeAuthorizations": [ + "setCodeAuthorizations": [ { - "chainId": "AQ==", - "nonce": "1", - "v": 1, - "r": "9+Pll/wJfnHtbCaxSyXlOVvIUQ1YuRNq9DnhJxXy1yE=", - "s": "bPfD15Ob/beENz7/wOuwvXVJaRpRPzlePNq/hgJySYc=", - "authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=" + "chainId": "AQ==", + "nonce": "1", + "v": 1, + "r": "9+Pll/wJfnHtbCaxSyXlOVvIUQ1YuRNq9DnhJxXy1yE=", + "s": "bPfD15Ob/beENz7/wOuwvXVJaRpRPzlePNq/hgJySYc=", + "authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=" }, { - "r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=", - "s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=", - "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" + "r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=", + "s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=", + "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" }, { - "discarded": true, - "v": 4, - "r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=", - "s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=" + "discarded": true, + "v": 4, + "r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=", + "s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=" }, { - "nonce": "1", - "r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=", - "s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=", - "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" + "nonce": "1", + "r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=", + "s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=", + "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" }, { - "discarded": true, - "nonce": "1", - "r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=", - "s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=", - "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" + "discarded": true, + "nonce": "1", + "r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=", + "s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=", + "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" } ] } ], - "systemCalls": [ + "systemCalls": [ { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", - "gasLimit": "30000000", - "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "endOrdinal": "2" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", + "gasLimit": "30000000", + "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "beginOrdinal": "1", + "endOrdinal": "2" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", - "gasLimit": "30000000", - "input": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=", - "endOrdinal": "4" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", + "gasLimit": "30000000", + "input": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=", + "beginOrdinal": "3", + "endOrdinal": "4" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", - "gasLimit": "30000000", - "endOrdinal": "29" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", + "gasLimit": "30000000", + "beginOrdinal": "28", + "endOrdinal": "29" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAC73cfOSIZC+1efiwDzpZAAclE=", - "gasLimit": "30000000", - "endOrdinal": "31" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAC73cfOSIZC+1efiwDzpZAAclE=", + "gasLimit": "30000000", + "beginOrdinal": "30", + "endOrdinal": "31" } ], - "ver": 3 + "ver": 3 } \ No newline at end of file diff --git a/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.2.golden.json b/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.2.golden.json index a643ce0bbd..9fa2151ece 100644 --- a/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.2.golden.json +++ b/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.2.golden.json @@ -1,218 +1,222 @@ { - "hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", - "number": "2", - "size": "717", - "header": { - "parentHash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", - "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", - "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "stateRoot": "C/zDETYPAXEFuq3RDENkXppoaNjfcWKHhIQqZGC0D5c=", - "transactionsRoot": "5SXnkgZs4gKgt8t4GTnSeoV1i17zHn3xbZXSln9fd2E=", - "receiptRoot": "TaaZwIwiwzd65OYkLzazOIYrFN0/DnyXzNqaA/dY3pQ=", - "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "difficulty": { - "bytes": "AA==" + "hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", + "number": "2", + "size": "717", + "header": { + "parentHash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", + "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", + "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "stateRoot": "C/zDETYPAXEFuq3RDENkXppoaNjfcWKHhIQqZGC0D5c=", + "transactionsRoot": "5SXnkgZs4gKgt8t4GTnSeoV1i17zHn3xbZXSln9fd2E=", + "receiptRoot": "TaaZwIwiwzd65OYkLzazOIYrFN0/DnyXzNqaA/dY3pQ=", + "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "difficulty": { + "bytes": "AA==" }, - "number": "2", - "gasLimit": "4712388", - "gasUsed": "35126", - "timestamp": "1970-01-01T00:00:20Z", - "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", - "baseFeePerGas": { - "bytes": "LgcbLA==" + "number": "2", + "gasLimit": "4712388", + "gasUsed": "35126", + "timestamp": "1970-01-01T00:00:20Z", + "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", + "baseFeePerGas": { + "bytes": "LgcbLA==" }, - "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", - "blobGasUsed": "0", - "excessBlobGas": "0", - "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" + "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", + "blobGasUsed": "0", + "excessBlobGas": "0", + "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" }, - "transactionTraces": [ + "transactionTraces": [ { - "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "nonce": "2", - "gasPrice": { - "bytes": "dGpSiAA=" + "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "nonce": "2", + "gasPrice": { + "bytes": "dGpSiAA=" }, - "gasLimit": "500000", - "v": "JQ==", - "r": "llnySTXnLA5URm+RriiJTQ4gvkdUifLtVOIyBCpDFTw=", - "s": "SsqOfVDTp1cpwvz0g4nLhIzrWRGwh0Jgz4l9GK/UHbE=", - "gasUsed": "35126", - "hash": "TNmQOfjPE0jeas0eba+xGMaitDgyCOKmvNIBapciCiE=", - "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "beginOrdinal": "5", - "endOrdinal": "21", - "status": "SUCCEEDED", - "receipt": { - "cumulativeGasUsed": "35126", - "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + "gasLimit": "500000", + "v": "JQ==", + "r": "llnySTXnLA5URm+RriiJTQ4gvkdUifLtVOIyBCpDFTw=", + "s": "SsqOfVDTp1cpwvz0g4nLhIzrWRGwh0Jgz4l9GK/UHbE=", + "gasUsed": "35126", + "hash": "TNmQOfjPE0jeas0eba+xGMaitDgyCOKmvNIBapciCiE=", + "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "beginOrdinal": "5", + "endOrdinal": "21", + "status": "SUCCEEDED", + "receipt": { + "cumulativeGasUsed": "35126", + "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" }, - "calls": [ + "calls": [ { - "index": 1, - "callType": "CALL", - "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "gasLimit": "479000", - "gasConsumed": "14126", - "balanceChanges": [ + "index": 1, + "callType": "CALL", + "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "gasLimit": "479000", + "gasConsumed": "14126", + "balanceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "DeBFrisGZrU=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "DeBFrisGZrU=" }, - "newValue": { - "bytes": "CmgYAUEtZrU=" + "newValue": { + "bytes": "CmgYAUEtZrU=" }, - "reason": "REASON_GAS_BUY", - "ordinal": "6" + "reason": "REASON_GAS_BUY", + "ordinal": "6" }, { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "CmgYAUEtZrQ=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "CmgYAUEtZrQ=" }, - "newValue": { - "bytes": "DaHgOZLVtrQ=" + "newValue": { + "bytes": "DaHgOZLVtrQ=" }, - "reason": "REASON_GAS_REFUND", - "ordinal": "19" + "reason": "REASON_GAS_REFUND", + "ordinal": "19" }, { - "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "oldValue": { - "bytes": "BFWK" + "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "oldValue": { + "bytes": "BFWK" }, - "newValue": { - "bytes": "PkzJFSq+Qg==" + "newValue": { + "bytes": "PkzJFSq+Qg==" }, - "reason": "REASON_REWARD_TRANSACTION_FEE", - "ordinal": "20" + "reason": "REASON_REWARD_TRANSACTION_FEE", + "ordinal": "20" } ], - "nonceChanges": [ + "nonceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": "2", - "newValue": "3", - "ordinal": "8" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": "2", + "newValue": "3", + "ordinal": "8" } ], - "gasChanges": [ + "gasChanges": [ { - "oldValue": "500000", - "newValue": "479000", - "reason": "REASON_INTRINSIC_GAS", - "ordinal": "7" + "oldValue": "500000", + "newValue": "479000", + "reason": "REASON_INTRINSIC_GAS", + "ordinal": "7" }, { - "oldValue": "478880", - "newValue": "476380", - "reason": "REASON_STATE_COLD_ACCESS", - "ordinal": "10" + "oldValue": "478880", + "newValue": "476380", + "reason": "REASON_STATE_COLD_ACCESS", + "ordinal": "10" }, { - "oldValue": "476380", - "newValue": "473780", - "reason": "REASON_STATE_COLD_ACCESS", - "ordinal": "11" + "oldValue": "476380", + "newValue": "473780", + "reason": "REASON_STATE_COLD_ACCESS", + "ordinal": "11" }, { - "oldValue": "478980", - "newValue": "7262", - "reason": "REASON_CALL", - "ordinal": "12" + "oldValue": "478980", + "newValue": "7262", + "reason": "REASON_CALL", + "ordinal": "12" }, { - "oldValue": "7262", - "newValue": "464874", - "reason": "REASON_REFUND_AFTER_EXECUTION", - "ordinal": "17" + "oldValue": "7262", + "newValue": "464874", + "reason": "REASON_REFUND_AFTER_EXECUTION", + "ordinal": "17" } ], - "endOrdinal": "18" + "endOrdinal": "18" }, { - "index": 2, - "parentIndex": 1, - "depth": 1, - "callType": "CALL", - "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=", - "value": { - "bytes": "AQ==" + "index": 2, + "parentIndex": 1, + "depth": 1, + "callType": "CALL", + "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=", + "value": { + "bytes": "AQ==" }, - "gasLimit": "459818", - "gasConsumed": "2206", - "balanceChanges": [ + "gasLimit": "459818", + "gasConsumed": "2206", + "balanceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "CmgYAUEtZrU=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "CmgYAUEtZrU=" }, - "newValue": { - "bytes": "CmgYAUEtZrQ=" + "newValue": { + "bytes": "CmgYAUEtZrQ=" }, - "reason": "REASON_TRANSFER", - "ordinal": "14" + "reason": "REASON_TRANSFER", + "ordinal": "14" }, { - "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", - "oldValue": { - "bytes": "DeC2s6dkAAE=" + "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", + "oldValue": { + "bytes": "DeC2s6dkAAE=" }, - "newValue": { - "bytes": "DeC2s6dkAAI=" + "newValue": { + "bytes": "DeC2s6dkAAI=" }, - "reason": "REASON_TRANSFER", - "ordinal": "15" + "reason": "REASON_TRANSFER", + "ordinal": "15" } ], - "beginOrdinal": "13", - "endOrdinal": "16" + "beginOrdinal": "13", + "endOrdinal": "16" } ] } ], - "systemCalls": [ + "systemCalls": [ { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", - "gasLimit": "30000000", - "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "endOrdinal": "2" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", + "gasLimit": "30000000", + "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "beginOrdinal": "1", + "endOrdinal": "2" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", - "gasLimit": "30000000", - "input": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", - "endOrdinal": "4" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", + "gasLimit": "30000000", + "input": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", + "beginOrdinal": "3", + "endOrdinal": "4" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", - "gasLimit": "30000000", - "endOrdinal": "23" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", + "gasLimit": "30000000", + "beginOrdinal": "22", + "endOrdinal": "23" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAC73cfOSIZC+1efiwDzpZAAclE=", - "gasLimit": "30000000", - "endOrdinal": "25" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAC73cfOSIZC+1efiwDzpZAAclE=", + "gasLimit": "30000000", + "beginOrdinal": "24", + "endOrdinal": "25" } ], - "ver": 3 + "ver": 3 } \ No newline at end of file diff --git a/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.3.golden.json b/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.3.golden.json index dabfa0ba69..555b86f29b 100644 --- a/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.3.golden.json +++ b/eth/tracers/internal/tracetest/firehose/testdata/TestEIP7702/block.3.golden.json @@ -1,182 +1,186 @@ { - "hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=", - "number": "3", - "size": "817", - "header": { - "parentHash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", - "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", - "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "stateRoot": "vWvMYC8Hck2r4d77C3bO7nRWmEtpytSHv092DGpMjeI=", - "transactionsRoot": "Bpo3ARUhIUuu9hH3yrkUNF2s22VFnHRDwdWxzM0pb5U=", - "receiptRoot": "A2x9IEIO284ktQYhSLzoBWO0j9RTL7HAaLLJalMRcBk=", - "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "difficulty": { - "bytes": "AA==" + "hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=", + "number": "3", + "size": "817", + "header": { + "parentHash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", + "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", + "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "stateRoot": "vWvMYC8Hck2r4d77C3bO7nRWmEtpytSHv092DGpMjeI=", + "transactionsRoot": "Bpo3ARUhIUuu9hH3yrkUNF2s22VFnHRDwdWxzM0pb5U=", + "receiptRoot": "A2x9IEIO284ktQYhSLzoBWO0j9RTL7HAaLLJalMRcBk=", + "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "difficulty": { + "bytes": "AA==" }, - "number": "3", - "gasLimit": "4712388", - "gasUsed": "36800", - "timestamp": "1970-01-01T00:00:30Z", - "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=", - "baseFeePerGas": { - "bytes": "KFws9Q==" + "number": "3", + "gasLimit": "4712388", + "gasUsed": "36800", + "timestamp": "1970-01-01T00:00:30Z", + "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=", + "baseFeePerGas": { + "bytes": "KFws9Q==" }, - "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", - "blobGasUsed": "0", - "excessBlobGas": "0", - "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" + "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", + "blobGasUsed": "0", + "excessBlobGas": "0", + "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" }, - "transactionTraces": [ + "transactionTraces": [ { - "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "nonce": "3", - "gasPrice": { - "bytes": "KFws9w==" + "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "nonce": "3", + "gasPrice": { + "bytes": "KFws9w==" }, - "gasLimit": "500000", - "r": "3+bIOst9jVy0xdYLs7dP1KfP1XrtsXepmpY0W3XBKII=", - "s": "UGXb+KJ8dparEBn0Wb2lX5fh1gB2+AiHfowzzmJWOkE=", - "gasUsed": "36800", - "type": "TRX_TYPE_SET_CODE", - "maxFeePerGas": { - "bytes": "ASoF8gA=" + "gasLimit": "500000", + "r": "3+bIOst9jVy0xdYLs7dP1KfP1XrtsXepmpY0W3XBKII=", + "s": "UGXb+KJ8dparEBn0Wb2lX5fh1gB2+AiHfowzzmJWOkE=", + "gasUsed": "36800", + "type": "TRX_TYPE_SET_CODE", + "maxFeePerGas": { + "bytes": "ASoF8gA=" }, - "maxPriorityFeePerGas": { - "bytes": "Ag==" + "maxPriorityFeePerGas": { + "bytes": "Ag==" }, - "hash": "vj4lUeVR72WjVf2OYUmz3Um0SH4d6qCao7cZRbBiaCI=", - "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "beginOrdinal": "5", - "endOrdinal": "15", - "status": "SUCCEEDED", - "receipt": { - "cumulativeGasUsed": "36800", - "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + "hash": "vj4lUeVR72WjVf2OYUmz3Um0SH4d6qCao7cZRbBiaCI=", + "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "beginOrdinal": "5", + "endOrdinal": "15", + "status": "SUCCEEDED", + "receipt": { + "cumulativeGasUsed": "36800", + "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" }, - "calls": [ + "calls": [ { - "index": 1, - "callType": "CALL", - "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "gasLimit": "454000", - "balanceChanges": [ + "index": 1, + "callType": "CALL", + "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "gasLimit": "454000", + "balanceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "DaHgOZLVtrQ=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "DaHgOZLVtrQ=" }, - "newValue": { - "bytes": "DaCsTVRHwNQ=" + "newValue": { + "bytes": "DaCsTVRHwNQ=" }, - "reason": "REASON_GAS_BUY", - "ordinal": "6" + "reason": "REASON_GAS_BUY", + "ordinal": "6" }, { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": { - "bytes": "DaCsTVRHwNQ=" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": { + "bytes": "DaCsTVRHwNQ=" }, - "newValue": { - "bytes": "DaHJj9CWBHQ=" + "newValue": { + "bytes": "DaHJj9CWBHQ=" }, - "reason": "REASON_GAS_REFUND", - "ordinal": "13" + "reason": "REASON_GAS_REFUND", + "ordinal": "13" }, { - "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "oldValue": { - "bytes": "PkzJFSq+Qg==" + "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "oldValue": { + "bytes": "PkzJFSq+Qg==" }, - "newValue": { - "bytes": "PkzJFSvdwg==" + "newValue": { + "bytes": "PkzJFSvdwg==" }, - "reason": "REASON_REWARD_TRANSACTION_FEE", - "ordinal": "14" + "reason": "REASON_REWARD_TRANSACTION_FEE", + "ordinal": "14" } ], - "nonceChanges": [ + "nonceChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": "3", - "newValue": "4", - "ordinal": "8" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": "3", + "newValue": "4", + "ordinal": "8" }, { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldValue": "4", - "newValue": "5", - "ordinal": "9" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldValue": "4", + "newValue": "5", + "ordinal": "9" } ], - "codeChanges": [ + "codeChanges": [ { - "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", - "oldHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=", - "oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=", - "newHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", - "ordinal": "10" + "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", + "oldHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=", + "oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=", + "newHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", + "ordinal": "10" } ], - "gasChanges": [ + "gasChanges": [ { - "oldValue": "500000", - "newValue": "454000", - "reason": "REASON_INTRINSIC_GAS", - "ordinal": "7" + "oldValue": "500000", + "newValue": "454000", + "reason": "REASON_INTRINSIC_GAS", + "ordinal": "7" } ], - "endOrdinal": "12" + "endOrdinal": "12" } ], - "setCodeAuthorizations": [ + "setCodeAuthorizations": [ { - "chainId": "AQ==", - "nonce": "4", - "r": "8RpcvObxuhW9b2SyJDTKMBtrqfyaAJlzS37bOLPTKIo=", - "s": "NMkyzSai5xkwNV4ttrTli9jZHXeB7hUwej28frcnTDw=", - "authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=" + "chainId": "AQ==", + "nonce": "4", + "r": "8RpcvObxuhW9b2SyJDTKMBtrqfyaAJlzS37bOLPTKIo=", + "s": "NMkyzSai5xkwNV4ttrTli9jZHXeB7hUwej28frcnTDw=", + "authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=" } ] } ], - "systemCalls": [ + "systemCalls": [ { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", - "gasLimit": "30000000", - "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "endOrdinal": "2" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", + "gasLimit": "30000000", + "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "beginOrdinal": "1", + "endOrdinal": "2" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", - "gasLimit": "30000000", - "input": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", - "endOrdinal": "4" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", + "gasLimit": "30000000", + "input": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", + "beginOrdinal": "3", + "endOrdinal": "4" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", - "gasLimit": "30000000", - "endOrdinal": "17" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", + "gasLimit": "30000000", + "beginOrdinal": "16", + "endOrdinal": "17" }, { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AAC73cfOSIZC+1efiwDzpZAAclE=", - "gasLimit": "30000000", - "endOrdinal": "19" + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAC73cfOSIZC+1efiwDzpZAAclE=", + "gasLimit": "30000000", + "beginOrdinal": "18", + "endOrdinal": "19" } ], - "ver": 3 + "ver": 3 } \ No newline at end of file diff --git a/eth/tracers/internal/tracetest/firehose/testdata/TestFirehoseChain/block.1.golden.json b/eth/tracers/internal/tracetest/firehose/testdata/TestFirehoseChain/block.1.golden.json deleted file mode 100644 index 183a0f6904..0000000000 --- a/eth/tracers/internal/tracetest/firehose/testdata/TestFirehoseChain/block.1.golden.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "hash": "jm7ksQVNlN8dilH7mDRH3C4nqFRZDDrABh+ZQoS+gVA=", - "number": "1", - "size": "541", - "header": { - "parentHash": "hFutUVaUpBa6tLjUTiLPl6jIlKhQIRCrgHiDlA4YXOA=", - "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", - "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "stateRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "transactionsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", - "receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", - "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", - "difficulty": { - "bytes": "Ag==" - }, - "number": "1", - "gasLimit": "1000000", - "timestamp": "1970-01-01T00:00:01Z", - "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "hash": "jm7ksQVNlN8dilH7mDRH3C4nqFRZDDrABh+ZQoS+gVA=", - "baseFeePerGas": { - "bytes": "CA==" - }, - "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" - }, - "balanceChanges": [ - { - "address": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "newValue": { - "bytes": "G8FtZ07IAAA=" - }, - "reason": "REASON_REWARD_MINE_BLOCK", - "ordinal": "5" - } - ], - "systemCalls": [ - { - "index": 1, - "callType": "CALL", - "caller": "//////////////////////////4=", - "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", - "gasLimit": "30000000", - "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", - "gasChanges": [ - { - "newValue": "30000000", - "reason": "REASON_CALL_INITIAL_BALANCE", - "ordinal": "2" - }, - { - "oldValue": "30000000", - "reason": "REASON_CALL_LEFT_OVER_RETURNED", - "ordinal": "3" - } - ], - "beginOrdinal": "1", - "endOrdinal": "4" - } - ], - "ver": 4 -} \ No newline at end of file diff --git a/eth/tracers/internal/tracetest/firehose/testdata/TestSystemCalls/block.1.golden.json b/eth/tracers/internal/tracetest/firehose/testdata/TestSystemCalls/block.1.golden.json new file mode 100644 index 0000000000..d537788649 --- /dev/null +++ b/eth/tracers/internal/tracetest/firehose/testdata/TestSystemCalls/block.1.golden.json @@ -0,0 +1,71 @@ +{ + "hash": "N6zSvR8q4sVWyJKo2vdOcc1KsrHinU95Ki/q4tjYQoc=", + "number": "1", + "size": "611", + "header": { + "parentHash": "MFX8J9a0oI6wcDOg0e51WkspiAhvKKYYnqwbUHUl7rE=", + "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", + "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "stateRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", + "transactionsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", + "receiptRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", + "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "difficulty": { + "bytes": "AA==" + }, + "number": "1", + "gasLimit": "4712388", + "timestamp": "1970-01-01T00:00:10Z", + "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "hash": "N6zSvR8q4sVWyJKo2vdOcc1KsrHinU95Ki/q4tjYQoc=", + "baseFeePerGas": { + "bytes": "NCdwwA==" + }, + "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", + "blobGasUsed": "0", + "excessBlobGas": "0", + "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" + }, + "systemCalls": [ + { + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AA899tcygH7xMZ+3uLuFItC+rAI=", + "gasLimit": "30000000", + "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + "beginOrdinal": "1", + "endOrdinal": "2" + }, + { + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", + "gasLimit": "30000000", + "input": "MFX8J9a0oI6wcDOg0e51WkspiAhvKKYYnqwbUHUl7rE=", + "beginOrdinal": "3", + "endOrdinal": "4" + }, + { + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", + "gasLimit": "30000000", + "beginOrdinal": "5", + "endOrdinal": "6" + }, + { + "index": 1, + "callType": "CALL", + "caller": "//////////////////////////4=", + "address": "AAC73cfOSIZC+1efiwDzpZAAclE=", + "gasLimit": "30000000", + "beginOrdinal": "7", + "endOrdinal": "8" + } + ], + "ver": 3 +} \ No newline at end of file