Fixed ordinals and account creations differences on system calls

This commit is contained in:
Matthieu Vachon 2025-02-20 10:21:58 -05:00
parent 69a64b2b78
commit e2a3cfbf4c
9 changed files with 642 additions and 675 deletions

View file

@ -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) 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 mainnetChainID = big.NewInt(1)
var goerliChainID = big.NewInt(5) var goerliChainID = big.NewInt(5)
var sepoliaChainID = big.NewInt(11155111) var sepoliaChainID = big.NewInt(11155111)
@ -1095,10 +1096,10 @@ func (f *Firehose) callStart(source string, callType pbeth.CallType, from common
if *f.applyBackwardCompatibility { if *f.applyBackwardCompatibility {
// Known Firehose issue: The `BeginOrdinal` of the root call is incremented but must // 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 // However, system calls are not affected by this bug and must keep their ordinal.
if source == "root" { if source == "root" && !f.inSystemCall {
call.BeginOrdinal = 0 call.BeginOrdinal = 0
} }
} }
@ -1140,7 +1141,7 @@ func (f *Firehose) getExecutedCode(evm *tracing.VMContext, call *pbeth.Call) boo
} }
if precompile { 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 return call.CallType != pbeth.CallType_CREATE && len(call.Input) > 0
} }
@ -1470,6 +1471,22 @@ func (f *Firehose) OnNewAccount(a common.Address) {
return 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{ accountCreation := &pbeth.AccountCreation{
Account: a.Bytes(), Account: a.Bytes(),
Ordinal: f.blockOrdinal.Next(), 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 { func (f *Firehose) panicInvalidState(msg string, callerSkip int) string {
caller := "N/A" caller := "N/A"
if _, file, line, ok := runtime.Caller(callerSkip); ok { if _, file, line, ok := runtime.Caller(callerSkip); ok {

View file

@ -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 // 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 // that the expected fields of `types.Header` changed
require.Equal(t, expectedHash, gethHeader.Hash(), 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(), gethHeader.Hash().Hex(),
expectedHash, expectedHash,
asIndentedJSON(t, gethHeader), asIndentedJSON(t, gethHeader),
@ -176,7 +176,7 @@ func Test_FirehoseAndGethHeaderFieldMatches(t *testing.T) {
t, t,
pbFieldCount, pbFieldCount,
gethFieldCount, gethFieldCount,
fieldsCountMistmatchMessage(t, pbFieldNames, gethFieldNames)) fieldsCountMismatchMessage(t, pbFieldNames, gethFieldNames))
for pbFieldName := range pbFieldNames { for pbFieldName := range pbFieldNames {
pbFieldRenamedName, found := pbFieldNameToGethMapping[pbFieldName] 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() t.Helper()
pbRemappedFieldNames := make(map[string]bool, len(pbFieldNames)) pbRemappedFieldNames := make(map[string]bool, len(pbFieldNames))

View file

@ -1,26 +1,19 @@
package firehose_test package firehose_test
import ( import (
"hash"
"math/big"
"os"
"testing" "testing"
"github.com/ethereum/go-ethereum/common" "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"
"github.com/ethereum/go-ethereum/core/rawdb" "github.com/ethereum/go-ethereum/core/rawdb"
"github.com/ethereum/go-ethereum/core/state" "github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/core/tracing" "github.com/ethereum/go-ethereum/core/tracing"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/vm" "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/rlp"
"github.com/ethereum/go-ethereum/tests" "github.com/ethereum/go-ethereum/tests"
"github.com/ethereum/go-ethereum/trie" "github.com/ethereum/go-ethereum/trie"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"golang.org/x/crypto/sha3"
) )
func runPrestateBlock(t *testing.T, prestatePath string, hooks *tracing.Hooks) { 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) var _ core.Validator = (*ignoreValidateStateValidator)(nil)
type ignoreValidateStateValidator struct { type ignoreValidateStateValidator struct {

View file

@ -7,6 +7,7 @@ import (
"testing" "testing"
"github.com/ethereum/go-ethereum/common" "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/beacon"
"github.com/ethereum/go-ethereum/consensus/ethash" "github.com/ethereum/go-ethereum/consensus/ethash"
"github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core"
@ -16,56 +17,10 @@ import (
"github.com/ethereum/go-ethereum/core/vm/program" "github.com/ethereum/go-ethereum/core/vm/program"
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/trie"
"github.com/holiman/uint256" "github.com/holiman/uint256"
"github.com/stretchr/testify/require" "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) { func TestFirehosePrestate(t *testing.T) {
testFolders := []string{ testFolders := []string{
"./testdata/TestFirehosePrestate/keccak256_too_few_memory_bytes_get_padded", "./testdata/TestFirehosePrestate/keccak256_too_few_memory_bytes_get_padded",
@ -91,7 +46,6 @@ func TestFirehosePrestate(t *testing.T) {
} }
} }
func TestFirehose_EIP7702(t *testing.T) { func TestFirehose_EIP7702(t *testing.T) {
// Copied from ./core/blockchain_test.go#L4180 (TestEIP7702) // 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) tracer, tracingHooks, onClose := newFirehoseTestTracer(t)
defer onClose() 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") 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() defer chain.Stop()
n, err := chain.InsertChain(blocks) n, err := chain.InsertChain(blocks)
require.NoError(t, err, "failed to insert chain block %d", n) 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))
} }

View file

@ -1,297 +1,301 @@
{ {
"hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", "hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
"number": "1", "number": "1",
"size": "1190", "size": "1190",
"header": { "header": {
"parentHash": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=", "parentHash": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=",
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"stateRoot": "wFieFJlWOhntuAXVWTxqg5Uur7kaXrFRERwFB8+qscc=", "stateRoot": "wFieFJlWOhntuAXVWTxqg5Uur7kaXrFRERwFB8+qscc=",
"transactionsRoot": "L6HG4v+Zoguv352C8ZdQGQ4tE5BJdzCJVbfWBHMquN0=", "transactionsRoot": "L6HG4v+Zoguv352C8ZdQGQ4tE5BJdzCJVbfWBHMquN0=",
"receiptRoot": "6LQ+xgZZXKAlBStw088D6A2kWiz7g+TtQlAALnPMSi4=", "receiptRoot": "6LQ+xgZZXKAlBStw088D6A2kWiz7g+TtQlAALnPMSi4=",
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"difficulty": { "difficulty": {
"bytes": "AA==" "bytes": "AA=="
}, },
"number": "1", "number": "1",
"gasLimit": "4712388", "gasLimit": "4712388",
"gasUsed": "142021", "gasUsed": "142021",
"timestamp": "1970-01-01T00:00:10Z", "timestamp": "1970-01-01T00:00:10Z",
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", "hash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
"baseFeePerGas": { "baseFeePerGas": {
"bytes": "NCdwwA==" "bytes": "NCdwwA=="
}, },
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
"blobGasUsed": "0", "blobGasUsed": "0",
"excessBlobGas": "0", "excessBlobGas": "0",
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
}, },
"transactionTraces": [ "transactionTraces": [
{ {
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"gasPrice": { "gasPrice": {
"bytes": "NCdwwg==" "bytes": "NCdwwg=="
}, },
"gasLimit": "500000", "gasLimit": "500000",
"r": "E2l+Qpz16QzQhLJM+8gu8vd/lpMS1JAC0/hIlSNzFeg=", "r": "E2l+Qpz16QzQhLJM+8gu8vd/lpMS1JAC0/hIlSNzFeg=",
"s": "N9pmx9wBwi0vXsT283fImtj6D4zPzYK3ZFXwBhYmbBA=", "s": "N9pmx9wBwi0vXsT283fImtj6D4zPzYK3ZFXwBhYmbBA=",
"gasUsed": "142021", "gasUsed": "142021",
"type": "TRX_TYPE_SET_CODE", "type": "TRX_TYPE_SET_CODE",
"maxFeePerGas": { "maxFeePerGas": {
"bytes": "ASoF8gA=" "bytes": "ASoF8gA="
}, },
"maxPriorityFeePerGas": { "maxPriorityFeePerGas": {
"bytes": "Ag==" "bytes": "Ag=="
}, },
"hash": "alLg5Yk4t0M/5q97S3ye+D/U/jP60tAc1kNI8q4G+G0=", "hash": "alLg5Yk4t0M/5q97S3ye+D/U/jP60tAc1kNI8q4G+G0=",
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"beginOrdinal": "5", "beginOrdinal": "5",
"endOrdinal": "27", "endOrdinal": "27",
"status": "SUCCEEDED", "status": "SUCCEEDED",
"receipt": { "receipt": {
"cumulativeGasUsed": "142021", "cumulativeGasUsed": "142021",
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
}, },
"calls": [ "calls": [
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"gasLimit": "354000", "gasLimit": "354000",
"gasConsumed": "31526", "gasConsumed": "31526",
"balanceChanges": [ "balanceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "DeC2s6dkAAA=" "bytes": "DeC2s6dkAAA="
}, },
"newValue": { "newValue": {
"bytes": "Dd8ozD895cA=" "bytes": "Dd8ozD895cA="
}, },
"reason": "REASON_GAS_BUY", "reason": "REASON_GAS_BUY",
"ordinal": "6" "ordinal": "6"
}, },
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "Dd8ozD895b8=" "bytes": "Dd8ozD895b8="
}, },
"newValue": { "newValue": {
"bytes": "DeBFrisGZrU=" "bytes": "DeBFrisGZrU="
}, },
"reason": "REASON_GAS_REFUND", "reason": "REASON_GAS_REFUND",
"ordinal": "25" "ordinal": "25"
}, },
{ {
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"newValue": { "newValue": {
"bytes": "BFWK" "bytes": "BFWK"
}, },
"reason": "REASON_REWARD_TRANSACTION_FEE", "reason": "REASON_REWARD_TRANSACTION_FEE",
"ordinal": "26" "ordinal": "26"
} }
], ],
"nonceChanges": [ "nonceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"newValue": "1", "newValue": "1",
"ordinal": "8" "ordinal": "8"
}, },
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": "1", "oldValue": "1",
"newValue": "2", "newValue": "2",
"ordinal": "9" "ordinal": "9"
}, },
{ {
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"newValue": "1", "newValue": "1",
"ordinal": "11" "ordinal": "11"
}, },
{ {
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"oldValue": "1", "oldValue": "1",
"newValue": "2", "newValue": "2",
"ordinal": "13" "ordinal": "13"
} }
], ],
"codeChanges": [ "codeChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", "oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
"newHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=", "newHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=",
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=", "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"ordinal": "10" "ordinal": "10"
}, },
{ {
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", "oldHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
"newHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=", "newHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=",
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=", "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=",
"ordinal": "12" "ordinal": "12"
}, },
{ {
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"oldHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=", "oldHash": "2nRj6FdgztYMKwAqS2x5e7pQdCMd4bTSeffx8pbIFmU=",
"oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=", "oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAzMw=",
"newHash": "0mhxQ0BYDv3haWHrT7NIuLWUSlfUHjFwuLM/8Jt1SXA=", "newHash": "0mhxQ0BYDv3haWHrT7NIuLWUSlfUHjFwuLM/8Jt1SXA=",
"newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAu7s=", "newCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAu7s=",
"ordinal": "14" "ordinal": "14"
} }
], ],
"gasChanges": [ "gasChanges": [
{ {
"oldValue": "500000", "oldValue": "500000",
"newValue": "354000", "newValue": "354000",
"reason": "REASON_INTRINSIC_GAS", "reason": "REASON_INTRINSIC_GAS",
"ordinal": "7" "ordinal": "7"
}, },
{ {
"oldValue": "353880", "oldValue": "353880",
"newValue": "351280", "newValue": "351280",
"reason": "REASON_STATE_COLD_ACCESS", "reason": "REASON_STATE_COLD_ACCESS",
"ordinal": "16" "ordinal": "16"
}, },
{ {
"oldValue": "353980", "oldValue": "353980",
"newValue": "5348", "newValue": "5348",
"reason": "REASON_CALL", "reason": "REASON_CALL",
"ordinal": "17" "ordinal": "17"
}, },
{ {
"oldValue": "5348", "oldValue": "5348",
"newValue": "322474", "newValue": "322474",
"reason": "REASON_REFUND_AFTER_EXECUTION", "reason": "REASON_REFUND_AFTER_EXECUTION",
"ordinal": "23" "ordinal": "23"
} }
], ],
"endOrdinal": "24" "endOrdinal": "24"
}, },
{ {
"index": 2, "index": 2,
"parentIndex": 1, "parentIndex": 1,
"depth": 1, "depth": 1,
"callType": "CALL", "callType": "CALL",
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=", "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=",
"value": { "value": {
"bytes": "AQ==" "bytes": "AQ=="
}, },
"gasLimit": "339232", "gasLimit": "339232",
"gasConsumed": "22106", "gasConsumed": "22106",
"storageChanges": [ "storageChanges": [
{ {
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=", "key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=",
"oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "oldValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=", "newValue": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEI=",
"ordinal": "21" "ordinal": "21"
} }
], ],
"balanceChanges": [ "balanceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "Dd8ozD895cA=" "bytes": "Dd8ozD895cA="
}, },
"newValue": { "newValue": {
"bytes": "Dd8ozD895b8=" "bytes": "Dd8ozD895b8="
}, },
"reason": "REASON_TRANSFER", "reason": "REASON_TRANSFER",
"ordinal": "19" "ordinal": "19"
}, },
{ {
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"oldValue": { "oldValue": {
"bytes": "DeC2s6dkAAA=" "bytes": "DeC2s6dkAAA="
}, },
"newValue": { "newValue": {
"bytes": "DeC2s6dkAAE=" "bytes": "DeC2s6dkAAE="
}, },
"reason": "REASON_TRANSFER", "reason": "REASON_TRANSFER",
"ordinal": "20" "ordinal": "20"
} }
], ],
"beginOrdinal": "18", "beginOrdinal": "18",
"endOrdinal": "22" "endOrdinal": "22"
} }
], ],
"setCodeAuthorizations": [ "setCodeAuthorizations": [
{ {
"chainId": "AQ==", "chainId": "AQ==",
"nonce": "1", "nonce": "1",
"v": 1, "v": 1,
"r": "9+Pll/wJfnHtbCaxSyXlOVvIUQ1YuRNq9DnhJxXy1yE=", "r": "9+Pll/wJfnHtbCaxSyXlOVvIUQ1YuRNq9DnhJxXy1yE=",
"s": "bPfD15Ob/beENz7/wOuwvXVJaRpRPzlePNq/hgJySYc=", "s": "bPfD15Ob/beENz7/wOuwvXVJaRpRPzlePNq/hgJySYc=",
"authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=" "authority": "cVYrcZmYc9tbKG35V68ZnslGF/c="
}, },
{ {
"r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=", "r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=",
"s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=", "s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=",
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc="
}, },
{ {
"discarded": true, "discarded": true,
"v": 4, "v": 4,
"r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=", "r": "2uP1vwtGC/qSZin0z+PZ2kBZ/xY3445BRUpUUwr4UOc=",
"s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM=" "s": "HhA+a0fj/u82ZZyD9gMoHso5vGditId+wkZrJcpo4UM="
}, },
{ {
"nonce": "1", "nonce": "1",
"r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=", "r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=",
"s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=", "s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=",
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc="
}, },
{ {
"discarded": true, "discarded": true,
"nonce": "1", "nonce": "1",
"r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=", "r": "aZRYP4l48gpWJSypjCxSptjK/kDFXmphIXOrnH6LlKs=",
"s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=", "s": "HLb0WRaaPuzez2ZbtK39Ch9vZGXNjm5AYg2i8X5MMwg=",
"authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=" "authority": "cDxLK9cMFp9XFxAcruVDKZ/JRsc="
} }
] ]
} }
], ],
"systemCalls": [ "systemCalls": [
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=", "address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
"gasLimit": "30000000", "gasLimit": "30000000",
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"endOrdinal": "2" "beginOrdinal": "1",
"endOrdinal": "2"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
"gasLimit": "30000000", "gasLimit": "30000000",
"input": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=", "input": "pWIUj7qpHz/G8tLNdaLNz8Jr1TmoyDxTXP9TdFcxi1w=",
"endOrdinal": "4" "beginOrdinal": "3",
"endOrdinal": "4"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
"gasLimit": "30000000", "gasLimit": "30000000",
"endOrdinal": "29" "beginOrdinal": "28",
"endOrdinal": "29"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=", "address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
"gasLimit": "30000000", "gasLimit": "30000000",
"endOrdinal": "31" "beginOrdinal": "30",
"endOrdinal": "31"
} }
], ],
"ver": 3 "ver": 3
} }

View file

@ -1,218 +1,222 @@
{ {
"hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", "hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
"number": "2", "number": "2",
"size": "717", "size": "717",
"header": { "header": {
"parentHash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", "parentHash": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"stateRoot": "C/zDETYPAXEFuq3RDENkXppoaNjfcWKHhIQqZGC0D5c=", "stateRoot": "C/zDETYPAXEFuq3RDENkXppoaNjfcWKHhIQqZGC0D5c=",
"transactionsRoot": "5SXnkgZs4gKgt8t4GTnSeoV1i17zHn3xbZXSln9fd2E=", "transactionsRoot": "5SXnkgZs4gKgt8t4GTnSeoV1i17zHn3xbZXSln9fd2E=",
"receiptRoot": "TaaZwIwiwzd65OYkLzazOIYrFN0/DnyXzNqaA/dY3pQ=", "receiptRoot": "TaaZwIwiwzd65OYkLzazOIYrFN0/DnyXzNqaA/dY3pQ=",
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"difficulty": { "difficulty": {
"bytes": "AA==" "bytes": "AA=="
}, },
"number": "2", "number": "2",
"gasLimit": "4712388", "gasLimit": "4712388",
"gasUsed": "35126", "gasUsed": "35126",
"timestamp": "1970-01-01T00:00:20Z", "timestamp": "1970-01-01T00:00:20Z",
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", "hash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
"baseFeePerGas": { "baseFeePerGas": {
"bytes": "LgcbLA==" "bytes": "LgcbLA=="
}, },
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
"blobGasUsed": "0", "blobGasUsed": "0",
"excessBlobGas": "0", "excessBlobGas": "0",
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
}, },
"transactionTraces": [ "transactionTraces": [
{ {
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"nonce": "2", "nonce": "2",
"gasPrice": { "gasPrice": {
"bytes": "dGpSiAA=" "bytes": "dGpSiAA="
}, },
"gasLimit": "500000", "gasLimit": "500000",
"v": "JQ==", "v": "JQ==",
"r": "llnySTXnLA5URm+RriiJTQ4gvkdUifLtVOIyBCpDFTw=", "r": "llnySTXnLA5URm+RriiJTQ4gvkdUifLtVOIyBCpDFTw=",
"s": "SsqOfVDTp1cpwvz0g4nLhIzrWRGwh0Jgz4l9GK/UHbE=", "s": "SsqOfVDTp1cpwvz0g4nLhIzrWRGwh0Jgz4l9GK/UHbE=",
"gasUsed": "35126", "gasUsed": "35126",
"hash": "TNmQOfjPE0jeas0eba+xGMaitDgyCOKmvNIBapciCiE=", "hash": "TNmQOfjPE0jeas0eba+xGMaitDgyCOKmvNIBapciCiE=",
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"beginOrdinal": "5", "beginOrdinal": "5",
"endOrdinal": "21", "endOrdinal": "21",
"status": "SUCCEEDED", "status": "SUCCEEDED",
"receipt": { "receipt": {
"cumulativeGasUsed": "35126", "cumulativeGasUsed": "35126",
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
}, },
"calls": [ "calls": [
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"gasLimit": "479000", "gasLimit": "479000",
"gasConsumed": "14126", "gasConsumed": "14126",
"balanceChanges": [ "balanceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "DeBFrisGZrU=" "bytes": "DeBFrisGZrU="
}, },
"newValue": { "newValue": {
"bytes": "CmgYAUEtZrU=" "bytes": "CmgYAUEtZrU="
}, },
"reason": "REASON_GAS_BUY", "reason": "REASON_GAS_BUY",
"ordinal": "6" "ordinal": "6"
}, },
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "CmgYAUEtZrQ=" "bytes": "CmgYAUEtZrQ="
}, },
"newValue": { "newValue": {
"bytes": "DaHgOZLVtrQ=" "bytes": "DaHgOZLVtrQ="
}, },
"reason": "REASON_GAS_REFUND", "reason": "REASON_GAS_REFUND",
"ordinal": "19" "ordinal": "19"
}, },
{ {
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"oldValue": { "oldValue": {
"bytes": "BFWK" "bytes": "BFWK"
}, },
"newValue": { "newValue": {
"bytes": "PkzJFSq+Qg==" "bytes": "PkzJFSq+Qg=="
}, },
"reason": "REASON_REWARD_TRANSACTION_FEE", "reason": "REASON_REWARD_TRANSACTION_FEE",
"ordinal": "20" "ordinal": "20"
} }
], ],
"nonceChanges": [ "nonceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": "2", "oldValue": "2",
"newValue": "3", "newValue": "3",
"ordinal": "8" "ordinal": "8"
} }
], ],
"gasChanges": [ "gasChanges": [
{ {
"oldValue": "500000", "oldValue": "500000",
"newValue": "479000", "newValue": "479000",
"reason": "REASON_INTRINSIC_GAS", "reason": "REASON_INTRINSIC_GAS",
"ordinal": "7" "ordinal": "7"
}, },
{ {
"oldValue": "478880", "oldValue": "478880",
"newValue": "476380", "newValue": "476380",
"reason": "REASON_STATE_COLD_ACCESS", "reason": "REASON_STATE_COLD_ACCESS",
"ordinal": "10" "ordinal": "10"
}, },
{ {
"oldValue": "476380", "oldValue": "476380",
"newValue": "473780", "newValue": "473780",
"reason": "REASON_STATE_COLD_ACCESS", "reason": "REASON_STATE_COLD_ACCESS",
"ordinal": "11" "ordinal": "11"
}, },
{ {
"oldValue": "478980", "oldValue": "478980",
"newValue": "7262", "newValue": "7262",
"reason": "REASON_CALL", "reason": "REASON_CALL",
"ordinal": "12" "ordinal": "12"
}, },
{ {
"oldValue": "7262", "oldValue": "7262",
"newValue": "464874", "newValue": "464874",
"reason": "REASON_REFUND_AFTER_EXECUTION", "reason": "REASON_REFUND_AFTER_EXECUTION",
"ordinal": "17" "ordinal": "17"
} }
], ],
"endOrdinal": "18" "endOrdinal": "18"
}, },
{ {
"index": 2, "index": 2,
"parentIndex": 1, "parentIndex": 1,
"depth": 1, "depth": 1,
"callType": "CALL", "callType": "CALL",
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=", "addressDelegatesTo": "AAAAAAAAAAAAAAAAAAAAAAAAu7s=",
"value": { "value": {
"bytes": "AQ==" "bytes": "AQ=="
}, },
"gasLimit": "459818", "gasLimit": "459818",
"gasConsumed": "2206", "gasConsumed": "2206",
"balanceChanges": [ "balanceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "CmgYAUEtZrU=" "bytes": "CmgYAUEtZrU="
}, },
"newValue": { "newValue": {
"bytes": "CmgYAUEtZrQ=" "bytes": "CmgYAUEtZrQ="
}, },
"reason": "REASON_TRANSFER", "reason": "REASON_TRANSFER",
"ordinal": "14" "ordinal": "14"
}, },
{ {
"address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=", "address": "cDxLK9cMFp9XFxAcruVDKZ/JRsc=",
"oldValue": { "oldValue": {
"bytes": "DeC2s6dkAAE=" "bytes": "DeC2s6dkAAE="
}, },
"newValue": { "newValue": {
"bytes": "DeC2s6dkAAI=" "bytes": "DeC2s6dkAAI="
}, },
"reason": "REASON_TRANSFER", "reason": "REASON_TRANSFER",
"ordinal": "15" "ordinal": "15"
} }
], ],
"beginOrdinal": "13", "beginOrdinal": "13",
"endOrdinal": "16" "endOrdinal": "16"
} }
] ]
} }
], ],
"systemCalls": [ "systemCalls": [
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=", "address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
"gasLimit": "30000000", "gasLimit": "30000000",
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"endOrdinal": "2" "beginOrdinal": "1",
"endOrdinal": "2"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
"gasLimit": "30000000", "gasLimit": "30000000",
"input": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=", "input": "tNKSM8SZPvaEgBA4yUj9YayXYYuXnLCuHx5oWJwVOhw=",
"endOrdinal": "4" "beginOrdinal": "3",
"endOrdinal": "4"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
"gasLimit": "30000000", "gasLimit": "30000000",
"endOrdinal": "23" "beginOrdinal": "22",
"endOrdinal": "23"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=", "address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
"gasLimit": "30000000", "gasLimit": "30000000",
"endOrdinal": "25" "beginOrdinal": "24",
"endOrdinal": "25"
} }
], ],
"ver": 3 "ver": 3
} }

View file

@ -1,182 +1,186 @@
{ {
"hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=", "hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=",
"number": "3", "number": "3",
"size": "817", "size": "817",
"header": { "header": {
"parentHash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", "parentHash": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
"uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=", "uncleHash": "HcxN6N7HXXqrhbVntszUGtMSRRuUinQT8KFC/UDUk0c=",
"coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "coinbase": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"stateRoot": "vWvMYC8Hck2r4d77C3bO7nRWmEtpytSHv092DGpMjeI=", "stateRoot": "vWvMYC8Hck2r4d77C3bO7nRWmEtpytSHv092DGpMjeI=",
"transactionsRoot": "Bpo3ARUhIUuu9hH3yrkUNF2s22VFnHRDwdWxzM0pb5U=", "transactionsRoot": "Bpo3ARUhIUuu9hH3yrkUNF2s22VFnHRDwdWxzM0pb5U=",
"receiptRoot": "A2x9IEIO284ktQYhSLzoBWO0j9RTL7HAaLLJalMRcBk=", "receiptRoot": "A2x9IEIO284ktQYhSLzoBWO0j9RTL7HAaLLJalMRcBk=",
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"difficulty": { "difficulty": {
"bytes": "AA==" "bytes": "AA=="
}, },
"number": "3", "number": "3",
"gasLimit": "4712388", "gasLimit": "4712388",
"gasUsed": "36800", "gasUsed": "36800",
"timestamp": "1970-01-01T00:00:30Z", "timestamp": "1970-01-01T00:00:30Z",
"mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "mixHash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=", "hash": "nM0MjYrd54p5L0zQNGpHV7fxetFL1VCejCvGELDLop8=",
"baseFeePerGas": { "baseFeePerGas": {
"bytes": "KFws9Q==" "bytes": "KFws9Q=="
}, },
"withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=", "withdrawalsRoot": "VugfFxvMVab/g0XmksD4bltI4BuZbK3AAWIvteNjtCE=",
"blobGasUsed": "0", "blobGasUsed": "0",
"excessBlobGas": "0", "excessBlobGas": "0",
"parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "parentBeaconRoot": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" "requestsHash": "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
}, },
"transactionTraces": [ "transactionTraces": [
{ {
"to": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "to": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"nonce": "3", "nonce": "3",
"gasPrice": { "gasPrice": {
"bytes": "KFws9w==" "bytes": "KFws9w=="
}, },
"gasLimit": "500000", "gasLimit": "500000",
"r": "3+bIOst9jVy0xdYLs7dP1KfP1XrtsXepmpY0W3XBKII=", "r": "3+bIOst9jVy0xdYLs7dP1KfP1XrtsXepmpY0W3XBKII=",
"s": "UGXb+KJ8dparEBn0Wb2lX5fh1gB2+AiHfowzzmJWOkE=", "s": "UGXb+KJ8dparEBn0Wb2lX5fh1gB2+AiHfowzzmJWOkE=",
"gasUsed": "36800", "gasUsed": "36800",
"type": "TRX_TYPE_SET_CODE", "type": "TRX_TYPE_SET_CODE",
"maxFeePerGas": { "maxFeePerGas": {
"bytes": "ASoF8gA=" "bytes": "ASoF8gA="
}, },
"maxPriorityFeePerGas": { "maxPriorityFeePerGas": {
"bytes": "Ag==" "bytes": "Ag=="
}, },
"hash": "vj4lUeVR72WjVf2OYUmz3Um0SH4d6qCao7cZRbBiaCI=", "hash": "vj4lUeVR72WjVf2OYUmz3Um0SH4d6qCao7cZRbBiaCI=",
"from": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "from": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"beginOrdinal": "5", "beginOrdinal": "5",
"endOrdinal": "15", "endOrdinal": "15",
"status": "SUCCEEDED", "status": "SUCCEEDED",
"receipt": { "receipt": {
"cumulativeGasUsed": "36800", "cumulativeGasUsed": "36800",
"logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" "logsBloom": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
}, },
"calls": [ "calls": [
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "caller": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"gasLimit": "454000", "gasLimit": "454000",
"balanceChanges": [ "balanceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "DaHgOZLVtrQ=" "bytes": "DaHgOZLVtrQ="
}, },
"newValue": { "newValue": {
"bytes": "DaCsTVRHwNQ=" "bytes": "DaCsTVRHwNQ="
}, },
"reason": "REASON_GAS_BUY", "reason": "REASON_GAS_BUY",
"ordinal": "6" "ordinal": "6"
}, },
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": { "oldValue": {
"bytes": "DaCsTVRHwNQ=" "bytes": "DaCsTVRHwNQ="
}, },
"newValue": { "newValue": {
"bytes": "DaHJj9CWBHQ=" "bytes": "DaHJj9CWBHQ="
}, },
"reason": "REASON_GAS_REFUND", "reason": "REASON_GAS_REFUND",
"ordinal": "13" "ordinal": "13"
}, },
{ {
"address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=", "address": "AAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"oldValue": { "oldValue": {
"bytes": "PkzJFSq+Qg==" "bytes": "PkzJFSq+Qg=="
}, },
"newValue": { "newValue": {
"bytes": "PkzJFSvdwg==" "bytes": "PkzJFSvdwg=="
}, },
"reason": "REASON_REWARD_TRANSACTION_FEE", "reason": "REASON_REWARD_TRANSACTION_FEE",
"ordinal": "14" "ordinal": "14"
} }
], ],
"nonceChanges": [ "nonceChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": "3", "oldValue": "3",
"newValue": "4", "newValue": "4",
"ordinal": "8" "ordinal": "8"
}, },
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldValue": "4", "oldValue": "4",
"newValue": "5", "newValue": "5",
"ordinal": "9" "ordinal": "9"
} }
], ],
"codeChanges": [ "codeChanges": [
{ {
"address": "cVYrcZmYc9tbKG35V68ZnslGF/c=", "address": "cVYrcZmYc9tbKG35V68ZnslGF/c=",
"oldHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=", "oldHash": "6BOVhfT5ksAf8bXRTf8FXcJyKhFA0Cb18MtIsAn1Z9o=",
"oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=", "oldCode": "7wEAAAAAAAAAAAAAAAAAAAAAAAAAqqo=",
"newHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=", "newHash": "xdJGAYb3IzySfn2y3McDwOUAtlPKgic7e/rYBF2FpHA=",
"ordinal": "10" "ordinal": "10"
} }
], ],
"gasChanges": [ "gasChanges": [
{ {
"oldValue": "500000", "oldValue": "500000",
"newValue": "454000", "newValue": "454000",
"reason": "REASON_INTRINSIC_GAS", "reason": "REASON_INTRINSIC_GAS",
"ordinal": "7" "ordinal": "7"
} }
], ],
"endOrdinal": "12" "endOrdinal": "12"
} }
], ],
"setCodeAuthorizations": [ "setCodeAuthorizations": [
{ {
"chainId": "AQ==", "chainId": "AQ==",
"nonce": "4", "nonce": "4",
"r": "8RpcvObxuhW9b2SyJDTKMBtrqfyaAJlzS37bOLPTKIo=", "r": "8RpcvObxuhW9b2SyJDTKMBtrqfyaAJlzS37bOLPTKIo=",
"s": "NMkyzSai5xkwNV4ttrTli9jZHXeB7hUwej28frcnTDw=", "s": "NMkyzSai5xkwNV4ttrTli9jZHXeB7hUwej28frcnTDw=",
"authority": "cVYrcZmYc9tbKG35V68ZnslGF/c=" "authority": "cVYrcZmYc9tbKG35V68ZnslGF/c="
} }
] ]
} }
], ],
"systemCalls": [ "systemCalls": [
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AA899tcygH7xMZ+3uLuFItC+rAI=", "address": "AA899tcygH7xMZ+3uLuFItC+rAI=",
"gasLimit": "30000000", "gasLimit": "30000000",
"input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", "input": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"endOrdinal": "2" "beginOrdinal": "1",
"endOrdinal": "2"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=", "address": "AAD5CCfxxToQy3oCM1sXUyAAKTU=",
"gasLimit": "30000000", "gasLimit": "30000000",
"input": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=", "input": "Hlau1KLprrOkaDe4TNZdPEoXeJ4UGEL1PwUY/qq+/rk=",
"endOrdinal": "4" "beginOrdinal": "3",
"endOrdinal": "4"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=", "address": "AAAJYe9IDrVegNGa2DV5pkwAcAI=",
"gasLimit": "30000000", "gasLimit": "30000000",
"endOrdinal": "17" "beginOrdinal": "16",
"endOrdinal": "17"
}, },
{ {
"index": 1, "index": 1,
"callType": "CALL", "callType": "CALL",
"caller": "//////////////////////////4=", "caller": "//////////////////////////4=",
"address": "AAC73cfOSIZC+1efiwDzpZAAclE=", "address": "AAC73cfOSIZC+1efiwDzpZAAclE=",
"gasLimit": "30000000", "gasLimit": "30000000",
"endOrdinal": "19" "beginOrdinal": "18",
"endOrdinal": "19"
} }
], ],
"ver": 3 "ver": 3
} }

View file

@ -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
}

View file

@ -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
}