diff options
-rw-r--r-- | VERSION | 1 | ||||
-rw-r--r-- | cmd/geth/blocktestcmd.go | 6 | ||||
-rw-r--r-- | cmd/geth/main.go | 24 | ||||
-rw-r--r-- | cmd/utils/flags.go | 16 | ||||
-rw-r--r-- | common/path.go | 22 | ||||
-rw-r--r-- | core/chain_manager.go | 3 | ||||
-rw-r--r-- | core/chain_manager_test.go | 55 | ||||
-rw-r--r-- | core/error.go | 11 | ||||
-rw-r--r-- | eth/downloader/downloader.go | 56 | ||||
-rw-r--r-- | p2p/discover/database.go | 96 | ||||
-rw-r--r-- | p2p/discover/database_test.go | 103 | ||||
-rw-r--r-- | p2p/discover/table.go | 168 | ||||
-rw-r--r-- | p2p/discover/table_test.go | 3 | ||||
-rw-r--r-- | p2p/discover/udp.go | 11 | ||||
-rw-r--r-- | p2p/discover/udp_test.go | 1 | ||||
-rw-r--r-- | rpc/api/eth.go | 48 | ||||
-rw-r--r-- | tests/files/StateTests/stCallCodes.json | 6798 | ||||
-rw-r--r-- | tests/state_test.go | 7 | ||||
-rw-r--r-- | tests/state_test_util.go | 3 | ||||
-rw-r--r-- | xeth/xeth.go | 46 |
20 files changed, 7208 insertions, 270 deletions
diff --git a/VERSION b/VERSION new file mode 100644 index 000000000..26aaba0e8 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.2.0 diff --git a/cmd/geth/blocktestcmd.go b/cmd/geth/blocktestcmd.go index d3257ca4d..d6195e025 100644 --- a/cmd/geth/blocktestcmd.go +++ b/cmd/geth/blocktestcmd.go @@ -91,7 +91,6 @@ func runBlockTest(ctx *cli.Context) { if err != nil { utils.Fatalf("%v", err) } - defer ethereum.Stop() if rpc { fmt.Println("Block Test post state validated, starting RPC interface.") startEth(ctx, ethereum) @@ -106,7 +105,6 @@ func runOneBlockTest(ctx *cli.Context, test *tests.BlockTest) (*eth.Ethereum, er cfg.MaxPeers = 0 // disable network cfg.Shh = false // disable whisper cfg.NAT = nil // disable port mapping - ethereum, err := eth.New(cfg) if err != nil { return nil, err @@ -114,7 +112,6 @@ func runOneBlockTest(ctx *cli.Context, test *tests.BlockTest) (*eth.Ethereum, er // import the genesis block ethereum.ResetWithGenesisBlock(test.Genesis) - // import pre accounts _, err = test.InsertPreState(ethereum) if err != nil { @@ -122,16 +119,13 @@ func runOneBlockTest(ctx *cli.Context, test *tests.BlockTest) (*eth.Ethereum, er } cm := ethereum.ChainManager() - validBlocks, err := test.TryBlocksInsert(cm) if err != nil { return ethereum, fmt.Errorf("Block Test load error: %v", err) } - newDB := cm.State() if err := test.ValidatePostState(newDB); err != nil { return ethereum, fmt.Errorf("post state validation failed: %v", err) } - return ethereum, test.ValidateImportedHeaders(cm, validBlocks) } diff --git a/cmd/geth/main.go b/cmd/geth/main.go index daffda30c..a9aa9f61f 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -390,7 +390,7 @@ func makeDefaultExtra() []byte { } func run(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) if ctx.GlobalBool(utils.OlympicFlag.Name) { utils.InitOlympic() } @@ -409,7 +409,7 @@ func run(ctx *cli.Context) { } func attach(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) var client comms.EthereumClient var err error @@ -441,7 +441,7 @@ func attach(ctx *cli.Context) { } func console(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) cfg := utils.MakeEthConfig(ClientIdentifier, nodeNameVersion, ctx) cfg.ExtraData = makeExtra(ctx) @@ -475,7 +475,7 @@ func console(ctx *cli.Context) { } func execJSFiles(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) cfg := utils.MakeEthConfig(ClientIdentifier, nodeNameVersion, ctx) ethereum, err := eth.New(cfg) @@ -502,7 +502,7 @@ func execJSFiles(ctx *cli.Context) { } func unlockAccount(ctx *cli.Context, am *accounts.Manager, addr string, i int) (addrHex, auth string) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) var err error addrHex, err = utils.ParamToAddress(addr, am) @@ -527,7 +527,7 @@ func unlockAccount(ctx *cli.Context, am *accounts.Manager, addr string, i int) ( } func blockRecovery(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) arg := ctx.Args().First() if len(ctx.Args()) < 1 && len(arg) > 0 { @@ -593,7 +593,7 @@ func startEth(ctx *cli.Context, eth *eth.Ethereum) { } func accountList(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) am := utils.MakeAccountManager(ctx) accts, err := am.Accounts() @@ -643,7 +643,7 @@ func getPassPhrase(ctx *cli.Context, desc string, confirmation bool, i int) (pas } func accountCreate(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) am := utils.MakeAccountManager(ctx) passphrase := getPassPhrase(ctx, "Your new account is locked with a password. Please give a password. Do not forget this password.", true, 0) @@ -655,7 +655,7 @@ func accountCreate(ctx *cli.Context) { } func accountUpdate(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) am := utils.MakeAccountManager(ctx) arg := ctx.Args().First() @@ -672,7 +672,7 @@ func accountUpdate(ctx *cli.Context) { } func importWallet(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) keyfile := ctx.Args().First() if len(keyfile) == 0 { @@ -694,7 +694,7 @@ func importWallet(ctx *cli.Context) { } func accountImport(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) keyfile := ctx.Args().First() if len(keyfile) == 0 { @@ -710,7 +710,7 @@ func accountImport(ctx *cli.Context) { } func makedag(ctx *cli.Context) { - utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) + utils.CheckLegalese(utils.MustDataDir(ctx)) args := ctx.Args() wrongArgs := func() { diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index b45ef0af2..ad474f17d 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -416,7 +416,7 @@ func MakeEthConfig(clientID, version string, ctx *cli.Context) *eth.Config { cfg := ð.Config{ Name: common.MakeName(clientID, version), - DataDir: ctx.GlobalString(DataDirFlag.Name), + DataDir: MustDataDir(ctx), GenesisNonce: ctx.GlobalInt(GenesisNonceFlag.Name), GenesisFile: ctx.GlobalString(GenesisFileFlag.Name), BlockChainVersion: ctx.GlobalInt(BlockchainVersionFlag.Name), @@ -509,7 +509,7 @@ func SetupEth(ctx *cli.Context) { // MakeChain creates a chain manager from set command line flags. func MakeChain(ctx *cli.Context) (chain *core.ChainManager, chainDb ethdb.Database) { - datadir := ctx.GlobalString(DataDirFlag.Name) + datadir := MustDataDir(ctx) cache := ctx.GlobalInt(CacheFlag.Name) var err error @@ -539,11 +539,21 @@ func MakeChain(ctx *cli.Context) (chain *core.ChainManager, chainDb ethdb.Databa // MakeChain creates an account manager from set command line flags. func MakeAccountManager(ctx *cli.Context) *accounts.Manager { - dataDir := ctx.GlobalString(DataDirFlag.Name) + dataDir := MustDataDir(ctx) ks := crypto.NewKeyStorePassphrase(filepath.Join(dataDir, "keystore")) return accounts.NewManager(ks) } +// MustDataDir retrieves the currently requested data directory, terminating if +// none (or the empty string) is specified. +func MustDataDir(ctx *cli.Context) string { + if path := ctx.GlobalString(DataDirFlag.Name); path != "" { + return path + } + Fatalf("Cannot determine default data directory, please set manually (--datadir)") + return "" +} + func IpcSocketPath(ctx *cli.Context) (ipcpath string) { if runtime.GOOS == "windows" { ipcpath = common.DefaultIpcPath() diff --git a/common/path.go b/common/path.go index 8b3c7d14b..1253c424c 100644 --- a/common/path.go +++ b/common/path.go @@ -100,14 +100,24 @@ func DefaultAssetPath() string { } func DefaultDataDir() string { - usr, _ := user.Current() - if runtime.GOOS == "darwin" { - return filepath.Join(usr.HomeDir, "Library", "Ethereum") - } else if runtime.GOOS == "windows" { - return filepath.Join(usr.HomeDir, "AppData", "Roaming", "Ethereum") + // Try to place the data folder in the user's home dir + var home string + if usr, err := user.Current(); err == nil { + home = usr.HomeDir } else { - return filepath.Join(usr.HomeDir, ".ethereum") + home = os.Getenv("HOME") } + if home != "" { + if runtime.GOOS == "darwin" { + return filepath.Join(home, "Library", "Ethereum") + } else if runtime.GOOS == "windows" { + return filepath.Join(home, "AppData", "Roaming", "Ethereum") + } else { + return filepath.Join(home, ".ethereum") + } + } + // As we cannot guess a stable location, return empty and handle later + return "" } func DefaultIpcPath() string { diff --git a/core/chain_manager.go b/core/chain_manager.go index 0fb472308..55ef3fcad 100644 --- a/core/chain_manager.go +++ b/core/chain_manager.go @@ -279,6 +279,7 @@ func (bc *ChainManager) ResetWithGenesisBlock(genesis *types.Block) { if err := WriteBlock(bc.chainDb, genesis); err != nil { glog.Fatalf("failed to write genesis block: %v", err) } + bc.genesisBlock = genesis bc.insert(bc.genesisBlock) bc.currentBlock = bc.genesisBlock bc.setTotalDifficulty(genesis.Difficulty()) @@ -641,7 +642,7 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) { } if BadHashes[block.Hash()] { - err := fmt.Errorf("Found known bad hash in chain %x", block.Hash()) + err := BadHashError(block.Hash()) blockErr(block, err) return i, err } diff --git a/core/chain_manager_test.go b/core/chain_manager_test.go index 0c77fc138..6cfafb8c0 100644 --- a/core/chain_manager_test.go +++ b/core/chain_manager_test.go @@ -75,7 +75,7 @@ func testFork(t *testing.T, bman *BlockProcessor, i, N int, f func(td1, td2 *big if err != nil { t.Fatal("could not make new canonical in testFork", err) } - // asert the bmans have the same block at i + // assert the bmans have the same block at i bi1 := bman.bc.GetBlockByNumber(uint64(i)).Hash() bi2 := bman2.bc.GetBlockByNumber(uint64(i)).Hash() if bi1 != bi2 { @@ -421,6 +421,59 @@ func TestReorgLongest(t *testing.T) { } } +func TestBadHashes(t *testing.T) { + db, _ := ethdb.NewMemDatabase() + genesis, err := WriteTestNetGenesisBlock(db, 0) + if err != nil { + t.Error(err) + t.FailNow() + } + bc := chm(genesis, db) + + chain := makeChainWithDiff(genesis, []int{1, 2, 4}, 10) + BadHashes[chain[2].Header().Hash()] = true + + _, err = bc.InsertChain(chain) + if !IsBadHashError(err) { + t.Errorf("error mismatch: want: BadHashError, have: %v", err) + } +} + +func TestReorgBadHashes(t *testing.T) { + db, _ := ethdb.NewMemDatabase() + genesis, err := WriteTestNetGenesisBlock(db, 0) + if err != nil { + t.Error(err) + t.FailNow() + } + bc := chm(genesis, db) + + chain := makeChainWithDiff(genesis, []int{1, 2, 3, 4}, 11) + bc.InsertChain(chain) + + if chain[3].Header().Hash() != bc.LastBlockHash() { + t.Errorf("last block hash mismatch: want: %x, have: %x", chain[3].Header().Hash(), bc.LastBlockHash()) + } + + // NewChainManager should check BadHashes when loading it db + BadHashes[chain[3].Header().Hash()] = true + + var eventMux event.TypeMux + ncm, err := NewChainManager(db, FakePow{}, &eventMux) + if err != nil { + t.Errorf("NewChainManager err: %s", err) + } + + // check it set head to (valid) parent of bad hash block + if chain[2].Header().Hash() != ncm.LastBlockHash() { + t.Errorf("last block hash mismatch: want: %x, have: %x", chain[2].Header().Hash(), ncm.LastBlockHash()) + } + + if chain[2].Header().GasLimit.Cmp(ncm.GasLimit()) != 0 { + t.Errorf("current block gasLimit mismatch: want: %x, have: %x", chain[2].Header().GasLimit, ncm.GasLimit()) + } +} + func TestReorgShortest(t *testing.T) { db, _ := ethdb.NewMemDatabase() genesis, err := WriteTestNetGenesisBlock(db, 0) diff --git a/core/error.go b/core/error.go index 09eea22d6..5e32124a7 100644 --- a/core/error.go +++ b/core/error.go @@ -177,3 +177,14 @@ func IsValueTransferErr(e error) bool { _, ok := e.(*ValueTransferError) return ok } + +type BadHashError common.Hash + +func (h BadHashError) Error() string { + return fmt.Sprintf("Found known bad hash in chain %x", h[:]) +} + +func IsBadHashError(err error) bool { + _, ok := err.(BadHashError) + return ok +} diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go index f038e24e4..d1a716c5f 100644 --- a/eth/downloader/downloader.go +++ b/eth/downloader/downloader.go @@ -154,7 +154,7 @@ type Downloader struct { blockCh chan blockPack // [eth/61] Channel receiving inbound blocks headerCh chan headerPack // [eth/62] Channel receiving inbound block headers bodyCh chan bodyPack // [eth/62] Channel receiving inbound block bodies - processCh chan bool // Channel to signal the block fetcher of new or finished work + wakeCh chan bool // Channel to signal the block/body fetcher of new tasks cancelCh chan struct{} // Channel to cancel mid-flight syncs cancelLock sync.RWMutex // Lock to protect the cancel channel in delivers @@ -188,7 +188,7 @@ func New(mux *event.TypeMux, hasBlock hashCheckFn, getBlock blockRetrievalFn, he blockCh: make(chan blockPack, 1), headerCh: make(chan headerPack, 1), bodyCh: make(chan bodyPack, 1), - processCh: make(chan bool, 1), + wakeCh: make(chan bool, 1), } } @@ -282,6 +282,10 @@ func (d *Downloader) synchronise(id string, hash common.Hash, td *big.Int) error d.queue.Reset() d.peers.Reset() + select { + case <-d.wakeCh: + default: + } // Create cancel channel for aborting mid-flight d.cancelLock.Lock() d.cancelCh = make(chan struct{}) @@ -633,7 +637,7 @@ func (d *Downloader) fetchHashes61(p *peer, td *big.Int, from uint64) error { glog.V(logger.Debug).Infof("%v: no available hashes", p) select { - case d.processCh <- false: + case d.wakeCh <- false: case <-d.cancelCh: } // If no hashes were retrieved at all, the peer violated it's TD promise that it had a @@ -664,12 +668,18 @@ func (d *Downloader) fetchHashes61(p *peer, td *big.Int, from uint64) error { return errBadPeer } // Notify the block fetcher of new hashes, but stop if queue is full - cont := d.queue.Pending() < maxQueuedHashes - select { - case d.processCh <- cont: - default: - } - if !cont { + if d.queue.Pending() < maxQueuedHashes { + // We still have hashes to fetch, send continuation wake signal (potential) + select { + case d.wakeCh <- true: + default: + } + } else { + // Hash limit reached, send a termination wake signal (enforced) + select { + case d.wakeCh <- false: + case <-d.cancelCh: + } return nil } // Queue not yet full, fetch the next batch @@ -766,7 +776,7 @@ func (d *Downloader) fetchBlocks61(from uint64) error { default: } - case cont := <-d.processCh: + case cont := <-d.wakeCh: // The hash fetcher sent a continuation flag, check if it's done if !cont { finished = true @@ -1053,7 +1063,7 @@ func (d *Downloader) fetchHeaders(p *peer, td *big.Int, from uint64) error { glog.V(logger.Debug).Infof("%v: no available headers", p) select { - case d.processCh <- false: + case d.wakeCh <- false: case <-d.cancelCh: } // If no headers were retrieved at all, the peer violated it's TD promise that it had a @@ -1084,12 +1094,18 @@ func (d *Downloader) fetchHeaders(p *peer, td *big.Int, from uint64) error { return errBadPeer } // Notify the block fetcher of new headers, but stop if queue is full - cont := d.queue.Pending() < maxQueuedHeaders - select { - case d.processCh <- cont: - default: - } - if !cont { + if d.queue.Pending() < maxQueuedHeaders { + // We still have headers to fetch, send continuation wake signal (potential) + select { + case d.wakeCh <- true: + default: + } + } else { + // Header limit reached, send a termination wake signal (enforced) + select { + case d.wakeCh <- false: + case <-d.cancelCh: + } return nil } // Queue not yet full, fetch the next batch @@ -1104,8 +1120,8 @@ func (d *Downloader) fetchHeaders(p *peer, td *big.Int, from uint64) error { // Finish the sync gracefully instead of dumping the gathered data though select { - case d.processCh <- false: - default: + case d.wakeCh <- false: + case <-d.cancelCh: } return nil } @@ -1199,7 +1215,7 @@ func (d *Downloader) fetchBodies(from uint64) error { default: } - case cont := <-d.processCh: + case cont := <-d.wakeCh: // The header fetcher sent a continuation flag, check if it's done if !cont { finished = true diff --git a/p2p/discover/database.go b/p2p/discover/database.go index d5c594364..e8e3371ff 100644 --- a/p2p/discover/database.go +++ b/p2p/discover/database.go @@ -21,6 +21,7 @@ package discover import ( "bytes" + "crypto/rand" "encoding/binary" "os" "sync" @@ -46,11 +47,8 @@ var ( // nodeDB stores all nodes we know about. type nodeDB struct { - lvl *leveldb.DB // Interface to the database itself - seeder iterator.Iterator // Iterator for fetching possible seed nodes - - self NodeID // Own node id to prevent adding it into the database - + lvl *leveldb.DB // Interface to the database itself + self NodeID // Own node id to prevent adding it into the database runner sync.Once // Ensures we can start at most one expirer quit chan struct{} // Channel to signal the expiring thread to stop } @@ -302,52 +300,70 @@ func (db *nodeDB) updateFindFails(id NodeID, fails int) error { return db.storeInt64(makeKey(id, nodeDBDiscoverFindFails), int64(fails)) } -// querySeeds retrieves a batch of nodes to be used as potential seed servers -// during bootstrapping the node into the network. -// -// Ideal seeds are the most recently seen nodes (highest probability to be still -// alive), but yet untried. However, since leveldb only supports dumb iteration -// we will instead start pulling in potential seeds that haven't been yet pinged -// since the start of the boot procedure. -// -// If the database runs out of potential seeds, we restart the startup counter -// and start iterating over the peers again. -func (db *nodeDB) querySeeds(n int) []*Node { - // Create a new seed iterator if none exists - if db.seeder == nil { - db.seeder = db.lvl.NewIterator(nil, nil) +// querySeeds retrieves random nodes to be used as potential seed nodes +// for bootstrapping. +func (db *nodeDB) querySeeds(n int, maxAge time.Duration) []*Node { + var ( + now = time.Now() + nodes = make([]*Node, 0, n) + it = db.lvl.NewIterator(nil, nil) + id NodeID + ) + defer it.Release() + +seek: + for seeks := 0; len(nodes) < n && seeks < n*5; seeks++ { + // Seek to a random entry. The first byte is incremented by a + // random amount each time in order to increase the likelihood + // of hitting all existing nodes in very small databases. + ctr := id[0] + rand.Read(id[:]) + id[0] = ctr + id[0]%16 + it.Seek(makeKey(id, nodeDBDiscoverRoot)) + + n := nextNode(it) + if n == nil { + id[0] = 0 + continue seek // iterator exhausted + } + if n.ID == db.self { + continue seek + } + if now.Sub(db.lastPong(n.ID)) > maxAge { + continue seek + } + for i := range nodes { + if nodes[i].ID == n.ID { + continue seek // duplicate + } + } + nodes = append(nodes, n) } - // Iterate over the nodes and find suitable seeds - nodes := make([]*Node, 0, n) - for len(nodes) < n && db.seeder.Next() { - // Iterate until a discovery node is found - id, field := splitKey(db.seeder.Key()) + return nodes +} + +// reads the next node record from the iterator, skipping over other +// database entries. +func nextNode(it iterator.Iterator) *Node { + for end := false; !end; end = !it.Next() { + id, field := splitKey(it.Key()) if field != nodeDBDiscoverRoot { continue } - // Dump it if its a self reference - if bytes.Compare(id[:], db.self[:]) == 0 { - db.deleteNode(id) + var n Node + if err := rlp.DecodeBytes(it.Value(), &n); err != nil { + if glog.V(logger.Warn) { + glog.Errorf("invalid node %x: %v", id, err) + } continue } - // Load it as a potential seed - if node := db.node(id); node != nil { - nodes = append(nodes, node) - } - } - // Release the iterator if we reached the end - if len(nodes) == 0 { - db.seeder.Release() - db.seeder = nil + return &n } - return nodes + return nil } // close flushes and closes the database files. func (db *nodeDB) close() { - if db.seeder != nil { - db.seeder.Release() - } close(db.quit) db.lvl.Close() } diff --git a/p2p/discover/database_test.go b/p2p/discover/database_test.go index 569585903..80c1a6ff2 100644 --- a/p2p/discover/database_test.go +++ b/p2p/discover/database_test.go @@ -162,9 +162,33 @@ var nodeDBSeedQueryNodes = []struct { node *Node pong time.Time }{ + // This one should not be in the result set because its last + // pong time is too far in the past. { node: newNode( - MustHexID("0x01d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), + MustHexID("0x84d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), + net.IP{127, 0, 0, 3}, + 30303, + 30303, + ), + pong: time.Now().Add(-3 * time.Hour), + }, + // This one shouldn't be in in the result set because its + // nodeID is the local node's ID. + { + node: newNode( + MustHexID("0x57d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), + net.IP{127, 0, 0, 3}, + 30303, + 30303, + ), + pong: time.Now().Add(-4 * time.Second), + }, + + // These should be in the result set. + { + node: newNode( + MustHexID("0x22d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), net.IP{127, 0, 0, 1}, 30303, 30303, @@ -173,7 +197,7 @@ var nodeDBSeedQueryNodes = []struct { }, { node: newNode( - MustHexID("0x02d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), + MustHexID("0x44d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), net.IP{127, 0, 0, 2}, 30303, 30303, @@ -182,7 +206,7 @@ var nodeDBSeedQueryNodes = []struct { }, { node: newNode( - MustHexID("0x03d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), + MustHexID("0xe2d9d65c4552b5eb43d5ad55a2ee3f56c6cbc1c64a5c8d659f51fcd51bace24351232b8d7821617d2b29b54b81cdefb9b3e9c37d7fd5f63270bcc9e1a6f6a439"), net.IP{127, 0, 0, 3}, 30303, 30303, @@ -192,7 +216,7 @@ var nodeDBSeedQueryNodes = []struct { } func TestNodeDBSeedQuery(t *testing.T) { - db, _ := newNodeDB("", Version, NodeID{}) + db, _ := newNodeDB("", Version, nodeDBSeedQueryNodes[1].node.ID) defer db.close() // Insert a batch of nodes for querying @@ -200,20 +224,24 @@ func TestNodeDBSeedQuery(t *testing.T) { if err := db.updateNode(seed.node); err != nil { t.Fatalf("node %d: failed to insert: %v", i, err) } + if err := db.updateLastPong(seed.node.ID, seed.pong); err != nil { + t.Fatalf("node %d: failed to insert lastPong: %v", i, err) + } } + // Retrieve the entire batch and check for duplicates - seeds := db.querySeeds(2 * len(nodeDBSeedQueryNodes)) - if len(seeds) != len(nodeDBSeedQueryNodes) { - t.Errorf("seed count mismatch: have %v, want %v", len(seeds), len(nodeDBSeedQueryNodes)) - } + seeds := db.querySeeds(len(nodeDBSeedQueryNodes)*2, time.Hour) have := make(map[NodeID]struct{}) for _, seed := range seeds { have[seed.ID] = struct{}{} } want := make(map[NodeID]struct{}) - for _, seed := range nodeDBSeedQueryNodes { + for _, seed := range nodeDBSeedQueryNodes[2:] { want[seed.node.ID] = struct{}{} } + if len(seeds) != len(want) { + t.Errorf("seed count mismatch: have %v, want %v", len(seeds), len(want)) + } for id, _ := range have { if _, ok := want[id]; !ok { t.Errorf("extra seed: %v", id) @@ -224,63 +252,6 @@ func TestNodeDBSeedQuery(t *testing.T) { t.Errorf("missing seed: %v", id) } } - // Make sure the next batch is empty (seed EOF) - seeds = db.querySeeds(2 * len(nodeDBSeedQueryNodes)) - if len(seeds) != 0 { - t.Errorf("seed count mismatch: have %v, want %v", len(seeds), 0) - } -} - -func TestNodeDBSeedQueryContinuation(t *testing.T) { - db, _ := newNodeDB("", Version, NodeID{}) - defer db.close() - - // Insert a batch of nodes for querying - for i, seed := range nodeDBSeedQueryNodes { - if err := db.updateNode(seed.node); err != nil { - t.Fatalf("node %d: failed to insert: %v", i, err) - } - } - // Iteratively retrieve the batch, checking for an empty batch on reset - for i := 0; i < len(nodeDBSeedQueryNodes); i++ { - if seeds := db.querySeeds(1); len(seeds) != 1 { - t.Errorf("1st iteration %d: seed count mismatch: have %v, want %v", i, len(seeds), 1) - } - } - if seeds := db.querySeeds(1); len(seeds) != 0 { - t.Errorf("reset: seed count mismatch: have %v, want %v", len(seeds), 0) - } - for i := 0; i < len(nodeDBSeedQueryNodes); i++ { - if seeds := db.querySeeds(1); len(seeds) != 1 { - t.Errorf("2nd iteration %d: seed count mismatch: have %v, want %v", i, len(seeds), 1) - } - } -} - -func TestNodeDBSelfSeedQuery(t *testing.T) { - // Assign a node as self to verify evacuation - self := nodeDBSeedQueryNodes[0].node.ID - db, _ := newNodeDB("", Version, self) - defer db.close() - - // Insert a batch of nodes for querying - for i, seed := range nodeDBSeedQueryNodes { - if err := db.updateNode(seed.node); err != nil { - t.Fatalf("node %d: failed to insert: %v", i, err) - } - } - // Retrieve the entire batch and check that self was evacuated - seeds := db.querySeeds(2 * len(nodeDBSeedQueryNodes)) - if len(seeds) != len(nodeDBSeedQueryNodes)-1 { - t.Errorf("seed count mismatch: have %v, want %v", len(seeds), len(nodeDBSeedQueryNodes)-1) - } - have := make(map[NodeID]struct{}) - for _, seed := range seeds { - have[seed.ID] = struct{}{} - } - if _, ok := have[self]; ok { - t.Errorf("self not evacuated") - } } func TestNodeDBPersistency(t *testing.T) { diff --git a/p2p/discover/table.go b/p2p/discover/table.go index 972bc1077..c128c2ed1 100644 --- a/p2p/discover/table.go +++ b/p2p/discover/table.go @@ -44,6 +44,10 @@ const ( maxBondingPingPongs = 16 maxFindnodeFailures = 5 + + autoRefreshInterval = 1 * time.Hour + seedCount = 30 + seedMaxAge = 5 * 24 * time.Hour ) type Table struct { @@ -52,6 +56,10 @@ type Table struct { nursery []*Node // bootstrap nodes db *nodeDB // database of known nodes + refreshReq chan struct{} + closeReq chan struct{} + closed chan struct{} + bondmu sync.Mutex bonding map[NodeID]*bondproc bondslots chan struct{} // limits total number of active bonding processes @@ -80,10 +88,7 @@ type transport interface { // bucket contains nodes, ordered by their last activity. the entry // that was most recently active is the first element in entries. -type bucket struct { - lastLookup time.Time - entries []*Node -} +type bucket struct{ entries []*Node } func newTable(t transport, ourID NodeID, ourAddr *net.UDPAddr, nodeDBPath string) *Table { // If no node database was given, use an in-memory one @@ -93,11 +98,14 @@ func newTable(t transport, ourID NodeID, ourAddr *net.UDPAddr, nodeDBPath string db, _ = newNodeDB("", Version, ourID) } tab := &Table{ - net: t, - db: db, - self: newNode(ourID, ourAddr.IP, uint16(ourAddr.Port), uint16(ourAddr.Port)), - bonding: make(map[NodeID]*bondproc), - bondslots: make(chan struct{}, maxBondingPingPongs), + net: t, + db: db, + self: newNode(ourID, ourAddr.IP, uint16(ourAddr.Port), uint16(ourAddr.Port)), + bonding: make(map[NodeID]*bondproc), + bondslots: make(chan struct{}, maxBondingPingPongs), + refreshReq: make(chan struct{}), + closeReq: make(chan struct{}), + closed: make(chan struct{}), } for i := 0; i < cap(tab.bondslots); i++ { tab.bondslots <- struct{}{} @@ -105,6 +113,7 @@ func newTable(t transport, ourID NodeID, ourAddr *net.UDPAddr, nodeDBPath string for i := range tab.buckets { tab.buckets[i] = new(bucket) } + go tab.refreshLoop() return tab } @@ -163,10 +172,12 @@ func randUint(max uint32) uint32 { // Close terminates the network listener and flushes the node database. func (tab *Table) Close() { - if tab.net != nil { - tab.net.close() + select { + case <-tab.closed: + // already closed. + case tab.closeReq <- struct{}{}: + <-tab.closed // wait for refreshLoop to end. } - tab.db.close() } // Bootstrap sets the bootstrap nodes. These nodes are used to connect @@ -183,7 +194,7 @@ func (tab *Table) Bootstrap(nodes []*Node) { tab.nursery = append(tab.nursery, &cpy) } tab.mutex.Unlock() - tab.refresh() + tab.requestRefresh() } // Lookup performs a network search for nodes close @@ -204,15 +215,13 @@ func (tab *Table) Lookup(targetID NodeID) []*Node { asked[tab.self.ID] = true tab.mutex.Lock() - // update last lookup stamp (for refresh logic) - tab.buckets[logdist(tab.self.sha, target)].lastLookup = time.Now() // generate initial result set result := tab.closest(target, bucketSize) tab.mutex.Unlock() - // If the result set is empty, all nodes were dropped, refresh + // If the result set is empty, all nodes were dropped, refresh. if len(result.entries) == 0 { - tab.refresh() + tab.requestRefresh() return nil } @@ -257,56 +266,86 @@ func (tab *Table) Lookup(targetID NodeID) []*Node { return result.entries } -// refresh performs a lookup for a random target to keep buckets full, or seeds -// the table if it is empty (initial bootstrap or discarded faulty peers). -func (tab *Table) refresh() { - seed := true +func (tab *Table) requestRefresh() { + select { + case tab.refreshReq <- struct{}{}: + case <-tab.closed: + } +} - // If the discovery table is empty, seed with previously known nodes - tab.mutex.Lock() - for _, bucket := range tab.buckets { - if len(bucket.entries) > 0 { - seed = false - break +func (tab *Table) refreshLoop() { + defer func() { + tab.db.close() + if tab.net != nil { + tab.net.close() } - } - tab.mutex.Unlock() + close(tab.closed) + }() - // If the table is not empty, try to refresh using the live entries - if !seed { - // The Kademlia paper specifies that the bucket refresh should - // perform a refresh in the least recently used bucket. We cannot - // adhere to this because the findnode target is a 512bit value - // (not hash-sized) and it is not easily possible to generate a - // sha3 preimage that falls into a chosen bucket. - // - // We perform a lookup with a random target instead. - var target NodeID - rand.Read(target[:]) - - result := tab.Lookup(target) - if len(result) == 0 { - // Lookup failed, seed after all - seed = true + timer := time.NewTicker(autoRefreshInterval) + var done chan struct{} + for { + select { + case <-timer.C: + if done == nil { + done = make(chan struct{}) + go tab.doRefresh(done) + } + case <-tab.refreshReq: + if done == nil { + done = make(chan struct{}) + go tab.doRefresh(done) + } + case <-done: + done = nil + case <-tab.closeReq: + if done != nil { + <-done + } + return } } +} - if seed { - // Pick a batch of previously know seeds to lookup with - seeds := tab.db.querySeeds(10) - for _, seed := range seeds { - glog.V(logger.Debug).Infoln("Seeding network with", seed) - } - nodes := append(tab.nursery, seeds...) +// doRefresh performs a lookup for a random target to keep buckets +// full. seed nodes are inserted if the table is empty (initial +// bootstrap or discarded faulty peers). +func (tab *Table) doRefresh(done chan struct{}) { + defer close(done) + + // The Kademlia paper specifies that the bucket refresh should + // perform a lookup in the least recently used bucket. We cannot + // adhere to this because the findnode target is a 512bit value + // (not hash-sized) and it is not easily possible to generate a + // sha3 preimage that falls into a chosen bucket. + // We perform a lookup with a random target instead. + var target NodeID + rand.Read(target[:]) + result := tab.Lookup(target) + if len(result) > 0 { + return + } - // Bond with all the seed nodes (will pingpong only if failed recently) - bonded := tab.bondall(nodes) - if len(bonded) > 0 { - tab.Lookup(tab.self.ID) + // The table is empty. Load nodes from the database and insert + // them. This should yield a few previously seen nodes that are + // (hopefully) still alive. + seeds := tab.db.querySeeds(seedCount, seedMaxAge) + seeds = tab.bondall(append(seeds, tab.nursery...)) + if glog.V(logger.Debug) { + if len(seeds) == 0 { + glog.Infof("no seed nodes found") + } + for _, n := range seeds { + age := time.Since(tab.db.lastPong(n.ID)) + glog.Infof("seed node (age %v): %v", age, n) } - // TODO: the Kademlia paper says that we're supposed to perform - // random lookups in all buckets further away than our closest neighbor. } + tab.mutex.Lock() + tab.stuff(seeds) + tab.mutex.Unlock() + + // Finally, do a self lookup to fill up the buckets. + tab.Lookup(tab.self.ID) } // closest returns the n nodes in the table that are closest to the @@ -373,8 +412,9 @@ func (tab *Table) bond(pinged bool, id NodeID, addr *net.UDPAddr, tcpPort uint16 } // If the node is unknown (non-bonded) or failed (remotely unknown), bond from scratch var result error - if node == nil || fails > 0 { - glog.V(logger.Detail).Infof("Bonding %x: known=%v, fails=%v", id[:8], node != nil, fails) + age := time.Since(tab.db.lastPong(id)) + if node == nil || fails > 0 || age > nodeDBNodeExpiration { + glog.V(logger.Detail).Infof("Bonding %x: known=%t, fails=%d age=%v", id[:8], node != nil, fails, age) tab.bondmu.Lock() w := tab.bonding[id] @@ -435,13 +475,17 @@ func (tab *Table) pingpong(w *bondproc, pinged bool, id NodeID, addr *net.UDPAdd // ping a remote endpoint and wait for a reply, also updating the node // database accordingly. func (tab *Table) ping(id NodeID, addr *net.UDPAddr) error { - // Update the last ping and send the message tab.db.updateLastPing(id, time.Now()) if err := tab.net.ping(id, addr); err != nil { return err } - // Pong received, update the database and return tab.db.updateLastPong(id, time.Now()) + + // Start the background expiration goroutine after the first + // successful communication. Subsequent calls have no effect if it + // is already running. We do this here instead of somewhere else + // so that the search for seed nodes also considers older nodes + // that would otherwise be removed by the expiration. tab.db.ensureExpirer() return nil } diff --git a/p2p/discover/table_test.go b/p2p/discover/table_test.go index 426f4e9cc..84962a1a5 100644 --- a/p2p/discover/table_test.go +++ b/p2p/discover/table_test.go @@ -514,9 +514,6 @@ func (tn *preminedTestnet) findnode(toid NodeID, toaddr *net.UDPAddr, target Nod if toaddr.Port == 0 { panic("query to node at distance 0") } - if target != tn.target { - panic("findnode with wrong target") - } next := uint16(toaddr.Port) - 1 var result []*Node for i, id := range tn.dists[toaddr.Port] { diff --git a/p2p/discover/udp.go b/p2p/discover/udp.go index afb31ee69..20f69cf08 100644 --- a/p2p/discover/udp.go +++ b/p2p/discover/udp.go @@ -39,7 +39,6 @@ var ( errPacketTooSmall = errors.New("too small") errBadHash = errors.New("bad hash") errExpired = errors.New("expired") - errBadVersion = errors.New("version mismatch") errUnsolicitedReply = errors.New("unsolicited reply") errUnknownNode = errors.New("unknown node") errTimeout = errors.New("RPC timeout") @@ -52,8 +51,6 @@ const ( respTimeout = 500 * time.Millisecond sendTimeout = 500 * time.Millisecond expiration = 20 * time.Second - - refreshInterval = 1 * time.Hour ) // RPC packet types @@ -312,10 +309,8 @@ func (t *udp) loop() { plist = list.New() timeout = time.NewTimer(0) nextTimeout *pending // head of plist when timeout was last reset - refresh = time.NewTicker(refreshInterval) ) <-timeout.C // ignore first timeout - defer refresh.Stop() defer timeout.Stop() resetTimeout := func() { @@ -344,9 +339,6 @@ func (t *udp) loop() { resetTimeout() select { - case <-refresh.C: - go t.refresh() - case <-t.closing: for el := plist.Front(); el != nil; el = el.Next() { el.Value.(*pending).errc <- errClosed @@ -529,9 +521,6 @@ func (req *ping) handle(t *udp, from *net.UDPAddr, fromID NodeID, mac []byte) er if expired(req.Expiration) { return errExpired } - if req.Version != Version { - return errBadVersion - } t.send(from, pongPacket, pong{ To: makeEndpoint(from, req.From.TCP), ReplyTok: mac, diff --git a/p2p/discover/udp_test.go b/p2p/discover/udp_test.go index a86d3737b..913199c26 100644 --- a/p2p/discover/udp_test.go +++ b/p2p/discover/udp_test.go @@ -122,7 +122,6 @@ func TestUDP_packetErrors(t *testing.T) { defer test.table.Close() test.packetIn(errExpired, pingPacket, &ping{From: testRemote, To: testLocalAnnounced, Version: Version}) - test.packetIn(errBadVersion, pingPacket, &ping{From: testRemote, To: testLocalAnnounced, Version: 99, Expiration: futureExp}) test.packetIn(errUnsolicitedReply, pongPacket, &pong{ReplyTok: []byte{}, Expiration: futureExp}) test.packetIn(errUnknownNode, findnodePacket, &findnode{Expiration: futureExp}) test.packetIn(errUnsolicitedReply, neighborsPacket, &neighbors{Expiration: futureExp}) diff --git a/rpc/api/eth.go b/rpc/api/eth.go index 30366a951..4cd5f2695 100644 --- a/rpc/api/eth.go +++ b/rpc/api/eth.go @@ -210,7 +210,7 @@ func (self *ethApi) GetTransactionCount(req *shared.Request) (interface{}, error } count := self.xeth.AtStateNum(args.BlockNumber).TxCountAt(args.Address) - return newHexNum(big.NewInt(int64(count)).Bytes()), nil + return fmt.Sprintf("%#x", count), nil } func (self *ethApi) GetBlockTransactionCountByHash(req *shared.Request) (interface{}, error) { @@ -218,14 +218,11 @@ func (self *ethApi) GetBlockTransactionCountByHash(req *shared.Request) (interfa if err := self.codec.Decode(req.Params, &args); err != nil { return nil, shared.NewDecodeParamError(err.Error()) } - - raw := self.xeth.EthBlockByHash(args.Hash) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false) + block := self.xeth.EthBlockByHash(args.Hash) if block == nil { return nil, nil - } else { - return newHexNum(big.NewInt(int64(len(block.Transactions))).Bytes()), nil } + return fmt.Sprintf("%#x", len(block.Transactions())), nil } func (self *ethApi) GetBlockTransactionCountByNumber(req *shared.Request) (interface{}, error) { @@ -234,13 +231,11 @@ func (self *ethApi) GetBlockTransactionCountByNumber(req *shared.Request) (inter return nil, shared.NewDecodeParamError(err.Error()) } - raw := self.xeth.EthBlockByNumber(args.BlockNumber) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false) + block := self.xeth.EthBlockByNumber(args.BlockNumber) if block == nil { return nil, nil - } else { - return newHexNum(big.NewInt(int64(len(block.Transactions))).Bytes()), nil } + return fmt.Sprintf("%#x", len(block.Transactions())), nil } func (self *ethApi) GetUncleCountByBlockHash(req *shared.Request) (interface{}, error) { @@ -249,12 +244,11 @@ func (self *ethApi) GetUncleCountByBlockHash(req *shared.Request) (interface{}, return nil, shared.NewDecodeParamError(err.Error()) } - raw := self.xeth.EthBlockByHash(args.Hash) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false) + block := self.xeth.EthBlockByHash(args.Hash) if block == nil { return nil, nil } - return newHexNum(big.NewInt(int64(len(block.Uncles))).Bytes()), nil + return fmt.Sprintf("%#x", len(block.Uncles())), nil } func (self *ethApi) GetUncleCountByBlockNumber(req *shared.Request) (interface{}, error) { @@ -263,12 +257,11 @@ func (self *ethApi) GetUncleCountByBlockNumber(req *shared.Request) (interface{} return nil, shared.NewDecodeParamError(err.Error()) } - raw := self.xeth.EthBlockByNumber(args.BlockNumber) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false) + block := self.xeth.EthBlockByNumber(args.BlockNumber) if block == nil { return nil, nil } - return newHexNum(big.NewInt(int64(len(block.Uncles))).Bytes()), nil + return fmt.Sprintf("%#x", len(block.Uncles())), nil } func (self *ethApi) GetData(req *shared.Request) (interface{}, error) { @@ -377,8 +370,10 @@ func (self *ethApi) GetBlockByHash(req *shared.Request) (interface{}, error) { if err := self.codec.Decode(req.Params, &args); err != nil { return nil, shared.NewDecodeParamError(err.Error()) } - block := self.xeth.EthBlockByHash(args.BlockHash) + if block == nil { + return nil, nil + } return NewBlockRes(block, self.xeth.Td(block.Hash()), args.IncludeTxs), nil } @@ -389,6 +384,9 @@ func (self *ethApi) GetBlockByNumber(req *shared.Request) (interface{}, error) { } block := self.xeth.EthBlockByNumber(args.BlockNumber) + if block == nil { + return nil, nil + } return NewBlockRes(block, self.xeth.Td(block.Hash()), args.IncludeTxs), nil } @@ -419,10 +417,10 @@ func (self *ethApi) GetTransactionByBlockHashAndIndex(req *shared.Request) (inte } raw := self.xeth.EthBlockByHash(args.Hash) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true) - if block == nil { + if raw == nil { return nil, nil } + block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true) if args.Index >= int64(len(block.Transactions)) || args.Index < 0 { return nil, nil } else { @@ -437,10 +435,10 @@ func (self *ethApi) GetTransactionByBlockNumberAndIndex(req *shared.Request) (in } raw := self.xeth.EthBlockByNumber(args.BlockNumber) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true) - if block == nil { + if raw == nil { return nil, nil } + block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true) if args.Index >= int64(len(block.Transactions)) || args.Index < 0 { // return NewValidationError("Index", "does not exist") return nil, nil @@ -455,10 +453,10 @@ func (self *ethApi) GetUncleByBlockHashAndIndex(req *shared.Request) (interface{ } raw := self.xeth.EthBlockByHash(args.Hash) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false) - if block == nil { + if raw == nil { return nil, nil } + block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), false) if args.Index >= int64(len(block.Uncles)) || args.Index < 0 { // return NewValidationError("Index", "does not exist") return nil, nil @@ -473,10 +471,10 @@ func (self *ethApi) GetUncleByBlockNumberAndIndex(req *shared.Request) (interfac } raw := self.xeth.EthBlockByNumber(args.BlockNumber) - block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true) - if block == nil { + if raw == nil { return nil, nil } + block := NewBlockRes(raw, self.xeth.Td(raw.Hash()), true) if args.Index >= int64(len(block.Uncles)) || args.Index < 0 { return nil, nil } else { diff --git a/tests/files/StateTests/stCallCodes.json b/tests/files/StateTests/stCallCodes.json new file mode 100644 index 000000000..31fec4529 --- /dev/null +++ b/tests/files/StateTests/stCallCodes.json @@ -0,0 +1,6798 @@ +{ + "callcall_00" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013cfa", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c306", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "52f9d60984e3ed2c3e73ce7f61f3ce8d4c6ba1e5394440b69402342a8141a04e", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcall_00_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "3171e6d7f5ec3753ec3136b91072cf818ecdf832ecd48b2ae9127d7272f55c2c", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcall_00_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xdf3d", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76320c3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "6edf980c4ea12c7909b073b2fd8902d00bb24a0b9df2142eb415aa31e4c7edda", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155731000000000000000000000000000000000000000ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcall_000" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "1e4e9bb87b70efadec88e07680ef43a1071f36fe03860d93e6416ebe536f7f49", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcall_000_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "114dfa58628f348ecb38052e6d912f9abd2705c425a26811c7d571d496210589", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcall_000_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "82929fe6196eb5ccc21a2d3eaf392e5ea45bd9654f6f3db27f56e41378b942c1", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcall_000_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "db6a8d357e83569b40b2a956ea01857c310290261af6f595e7fc644630806488", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcall_000_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x04a817c800", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "b2cc70b5c91805a7ba65d849ab2f2977354a5ed97458fa5481daaa78dd01783f", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcall_000_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "f9904c46ff09c63f9864b18ef1acc3fa7ddda90e80b87f197500e40be0f61e54", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcallcode_001" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01", + "0x03" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "f852f9fb9609b6520d486b3a7349c4558eff41b41919fe8ee30109be0ea0d6a2", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcallcode_001_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "c81b3f4f15ffbc2ea51439704986ce61933c065b92ef9313f57c11b949856164", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcallcode_001_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "cb602245eb68a8e280581c91188049a5349c667fbfe0a636d88603e8821f1191", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcallcode_001_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "db6a8d357e83569b40b2a956ea01857c310290261af6f595e7fc644630806488", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcallcode_001_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x04a817c800", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "5ee6eeb669c1d7a7e71592eb8cb5a34c0375a8996d698e02f565fbf18da69705", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcallcode_001_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "23f8f86852e3e4a2e279acb10d051dda77dcf6af0c37ce21c97d73ece5af9951", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "5cfc164fa79f7a1ed6e4c96e479a96efdb50a7c14eb59af4016b1f0de169504e", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcode_01" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013cfa", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c306", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "7bcdcef928e940403041fa78be959d797aa3781c68b52c9f60bb6233251c533a", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcode_01_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "4a7005e8db1b88559a801ae1d71fbafcb7382345e0250e12edbf5413a7a4d821", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcode_01_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xdf3d", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76320c3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "3618f0634e258733a71ad69de3d642b67e8eb7d30ed210514e7fd231c80e7370", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155731000000000000000000000000000000000000000ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecall_010" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "5b1015952b3d38437f6b201a1a6418e469d994a10f85262440052ba67865c6fb", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecall_010_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "f63a2a1e0064faebba67d53594aa2e588b4735c9b537926a58a5f46df915e933", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecall_010_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "82929fe6196eb5ccc21a2d3eaf392e5ea45bd9654f6f3db27f56e41378b942c1", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecall_010_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "c4e47cb0a4fdec76c7e5b8995f705c4eb5981856d4d171f627163471cc20be06", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecall_010_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "308b378d2e435c0692646066af5f00b554ff5b3a2c9ebfee622d34231ded98fc", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecall_010_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "3a27bc9c6ffc87178ee9169ce24b0e291ae54c4e53de670eec5c145008543f0d", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "28b46965732d9fed6925f56bd10ae0df42205d903c9c0b51f8c6b6295f6ead44", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecallcode_011" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "2cb56c74efbe56527fe7e0269157bc5e37535a5892cda16331cc3146e2a0090b", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecallcode_011_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "91cc2d4dc118bc8d26e330573460197bdbd078e5bf9d193bcecbbdce81c523cf", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecallcode_011_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "cb602245eb68a8e280581c91188049a5349c667fbfe0a636d88603e8821f1191", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecallcode_011_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "c4e47cb0a4fdec76c7e5b8995f705c4eb5981856d4d171f627163471cc20be06", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecallcode_011_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "f43c5e45844f6bbb7b0a55cef021b13121fecab88793bdf5dea426825d17f9e5", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecallcode_011_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "5c2affc615e1f96d419f1765f106f5794982ad8c394895709e6192f04a3887f5", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcallcodecallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "e3ad647f45f66170708956d7148b3e3b7a092def6a2399d27be7fbfbdea4230f", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f1600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecall_10" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013cfa", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c306", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "d730f911e6e0400f6050f02e5ecfccf335a73831ba8a4543b1b6d2a234507e7a", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecall_10_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "88f322f71f7e7a5986baec25288251bb47e823b913d370b0ff0037e1c40dac7a", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecall_10_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155731000000000000000000000000000000000000000ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xdf3d", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76320c3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "6232a655eb075819b41b8c54e2c83c8730b5f42ff7f3820a58c13cf9ce1aa981", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f1600155731000000000000000000000000000000000000000ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcall_100" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "64bdb7e0270513e2f748dee8d432e9a72ad24ae34ca6a8c0661fa2ce8913daec", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcall_100_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "09428ab6acb12570eef3dbb5e9649260845a63a7e586b4541de8bc1a5e502ff6", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcall_100_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "d5897fcd0a35fa0bbc0371ae19ac6cae85819f8ab8d93e84c9352c344494925d", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcall_100_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "47cf508a818f4c87796040fd503c0362a320c2eca86cc360bd3454511bca60e6", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcall_100_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x04a817c800", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "8de9ffdf6b2b0f4048d30b61853c0ef89c4499a1d6a1846251d8d6d7cbddbd88", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcall_100_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "294042dda3ede82ea72313a788267340fcf9aea60f81ca9ee880a2bc7b814d01", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "a8670ec8bd38fd68db357ce1257b4ba7e9892058ace8f14b056bec60429c24cc", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcallcode_101" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01", + "0x03" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "51dd063160edd57746af7908fb943ab6f0f85eab4e3763a4aea474f38d1ea759", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcallcode_101_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "db8607c73cbe254c7e0eebe92e9f603c557b1c2a933360c1198c5268e3492372", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcallcode_101_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "f83ae2724136b45495ef4fc740c1e57d24f8a40d8004f74de7354d6f13a1c0b1", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcallcode_101_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "47cf508a818f4c87796040fd503c0362a320c2eca86cc360bd3454511bca60e6", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcallcode_101_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x04a817c800", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "36322aecd24ccc418a4542b24ef71f7a067927b59f62e71835e62f984f8a28e9", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcallcode_101_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "294042dda3ede82ea72313a788267340fcf9aea60f81ca9ee880a2bc7b814d01", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "843fc7bc4ac97ee198931f09665467525e5846bf6674622420f0e0173b89bba4", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f1600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcode_11" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013cfa", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c306", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "bbcd8ef7b56db46784fb09b60d2eee02e8542d61c7642b822cd3a3ff1cf63952", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcode_11_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "d65e968cc3649794d5f50924868a5d1b212401aa0298e7f811fa27d1cd9d44ea", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcode_11_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155731000000000000000000000000000000000000000ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xdf3d", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76320c3", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "77a4a1939bcb8b911d5b69a23096e346391cca0cefd06ef641b170fe26b76a15", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000261c350f2600155731000000000000000000000000000000000000000ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6001600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecall_110" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "d5a9dec8b89dcb61b585d6e679cb5ceb461469caaac3b97a343c10ac570aa5bb", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecall_110_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "d2abaf24ff786c06d898d9432e7b81a3da4e9c57f15f5f7476e4a97f47f148b5", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecall_110_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "d5897fcd0a35fa0bbc0371ae19ac6cae85819f8ab8d93e84c9352c344494925d", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecall_110_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "e9d6cf67715dfd126cd0b0e2cec6183489a796e6dc48d3e51c2d7337815abdb6", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecall_110_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + "0x03" : "0x01" + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "58797699a95dcbbc5692efe394ff177bb2bff2ac3a6846cb9480eeb49a4efaec", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f1600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecall_110_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "a9f074d01db22b4876c62d5a772b7e92f7f182d8ffff0aec50d664eb589306d8", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecall_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "2bba4d9c82761de3e6014ee9ed7d1f97fd6e4c6819034126d611e8a273509a1b", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f1600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecallcode_111" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01", + "0x03" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x018b60", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a76274a0", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "3f0c6caf2fc13f50a3a83ebd4be91db4a3b2336fda97ef9db480634976e31ee3", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecallcode_111_OOGE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01", + "0x02" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x013d3a", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762c2c6", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "a2bba64b5d6bf9af2f0b0277999d33cfb2d83586a2b9c5499ff7984b0beb59fc", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecallcode_111_OOGMAfter" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xa06e", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7635f92", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "f83ae2724136b45495ef4fc740c1e57d24f8a40d8004f74de7354d6f13a1c0b1", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecallcode_111_OOGMBefore" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0xeed4", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a763112c", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "e9d6cf67715dfd126cd0b0e2cec6183489a796e6dc48d3e51c2d7337815abdb6", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x00", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x00", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x00", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x029fe0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecallcode_111_SuicideEnd" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0x0de0b6b5fb6fe400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x012da3", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a762d25d", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "403b618a588daef088c707e25def251aa42c083092904234db5cccfff1689a7e", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000361c350f2600255731000000000000000000000000000000000000001ff", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecallcode_111_SuicideMiddle" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0x01c9c380", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x9117", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7636ee9", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "3795e19ed3276a737d84a353cbfa755a217005574bd7ee4934f9c1627d8603dd", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x60406000604060006000731000000000000000000000000000000000000001620249f0f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620186a0f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x731000000000000000000000000000000000000000ff6040600060406000600073100000000000000000000000000000000000000361c350f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000003" : { + "balance" : "0x02540be400", + "code" : "0x6001600355", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x2dc6c0", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + }, + "callcodecallcodecallcode_ABCB_RECURSIVE" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x0100", + "currentGasLimit" : "0xb2d05e00", + "currentNumber" : "0x00", + "currentTimestamp" : "0x01", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "logs" : [ + ], + "out" : "0x", + "post" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01", + "0x01" : "0x01" + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { + "balance" : "0x08a3c2", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a75b5c3e", + "code" : "0x", + "nonce" : "0x01", + "storage" : { + } + } + }, + "postStateRoot" : "a62ec476ec7b2c034e5ddb7d512640e509e8f000c306f596881163fb6ac48ad0", + "pre" : { + "1000000000000000000000000000000000000000" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x6040600060406000600073100000000000000000000000000000000000000163017d7840f2600055", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000001" : { + "balance" : "0x02540be400", + "code" : "0x60406000604060006000731000000000000000000000000000000000000002620f4240f2600155", + "nonce" : "0x00", + "storage" : { + } + }, + "1000000000000000000000000000000000000002" : { + "balance" : "0x02540be400", + "code" : "0x604060006040600060007310000000000000000000000000000000000000016207a120f2600255", + "nonce" : "0x00", + "storage" : { + } + }, + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x0de0b6b3a7640000", + "code" : "0x", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : "", + "gasLimit" : "0x01c9c380", + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "1000000000000000000000000000000000000000", + "value" : "0x00" + } + } +}
\ No newline at end of file diff --git a/tests/state_test.go b/tests/state_test.go index 7090b0541..245f60597 100644 --- a/tests/state_test.go +++ b/tests/state_test.go @@ -115,6 +115,13 @@ func TestCallCreateCallCode(t *testing.T) { } } +func TestCallCodes(t *testing.T) { + fn := filepath.Join(stateTestDir, "stCallCodes.json") + if err := RunStateTest(fn, StateSkipTests); err != nil { + t.Error(err) + } +} + func TestMemory(t *testing.T) { fn := filepath.Join(stateTestDir, "stMemoryTest.json") if err := RunStateTest(fn, StateSkipTests); err != nil { diff --git a/tests/state_test_util.go b/tests/state_test_util.go index 669e90a1e..3d8dfca31 100644 --- a/tests/state_test_util.go +++ b/tests/state_test_util.go @@ -128,6 +128,7 @@ func runStateTests(tests map[string]VmTest, skipTests []string) error { return nil } + //fmt.Println("StateTest name:", name) if err := runStateTest(test); err != nil { return fmt.Errorf("%s: %s\n", name, err.Error()) } @@ -172,7 +173,7 @@ func runStateTest(test VmTest) error { ret, logs, _, _ = RunState(statedb, env, test.Transaction) - // // Compare expected and actual return + // Compare expected and actual return rexp := common.FromHex(test.Out) if bytes.Compare(rexp, ret) != 0 { return fmt.Errorf("return failed. Expected %x, got %x\n", rexp, ret) diff --git a/xeth/xeth.go b/xeth/xeth.go index 00b70da6c..623b3a963 100644 --- a/xeth/xeth.go +++ b/xeth/xeth.go @@ -532,8 +532,10 @@ func (self *XEth) NewLogFilter(earliest, latest int64, skip, max int, address [] self.logMu.Lock() defer self.logMu.Unlock() - var id int filter := core.NewFilter(self.backend) + id := self.filterManager.InstallFilter(filter) + self.logQueue[id] = &logQueue{timeout: time.Now()} + filter.SetEarliestBlock(earliest) filter.SetLatestBlock(latest) filter.SetSkip(skip) @@ -544,10 +546,10 @@ func (self *XEth) NewLogFilter(earliest, latest int64, skip, max int, address [] self.logMu.Lock() defer self.logMu.Unlock() - self.logQueue[id].add(logs...) + if queue := self.logQueue[id]; queue != nil { + queue.add(logs...) + } } - id = self.filterManager.InstallFilter(filter) - self.logQueue[id] = &logQueue{timeout: time.Now()} return id } @@ -556,16 +558,18 @@ func (self *XEth) NewTransactionFilter() int { self.transactionMu.Lock() defer self.transactionMu.Unlock() - var id int filter := core.NewFilter(self.backend) + id := self.filterManager.InstallFilter(filter) + self.transactionQueue[id] = &hashQueue{timeout: time.Now()} + filter.TransactionCallback = func(tx *types.Transaction) { self.transactionMu.Lock() defer self.transactionMu.Unlock() - self.transactionQueue[id].add(tx.Hash()) + if queue := self.transactionQueue[id]; queue != nil { + queue.add(tx.Hash()) + } } - id = self.filterManager.InstallFilter(filter) - self.transactionQueue[id] = &hashQueue{timeout: time.Now()} return id } @@ -573,16 +577,18 @@ func (self *XEth) NewBlockFilter() int { self.blockMu.Lock() defer self.blockMu.Unlock() - var id int filter := core.NewFilter(self.backend) + id := self.filterManager.InstallFilter(filter) + self.blockQueue[id] = &hashQueue{timeout: time.Now()} + filter.BlockCallback = func(block *types.Block, logs state.Logs) { self.blockMu.Lock() defer self.blockMu.Unlock() - self.blockQueue[id].add(block.Hash()) + if queue := self.blockQueue[id]; queue != nil { + queue.add(block.Hash()) + } } - id = self.filterManager.InstallFilter(filter) - self.blockQueue[id] = &hashQueue{timeout: time.Now()} return id } @@ -1022,16 +1028,24 @@ func (m callmsg) Value() *big.Int { return m.value } func (m callmsg) Data() []byte { return m.data } type logQueue struct { + mu sync.Mutex + logs state.Logs timeout time.Time id int } func (l *logQueue) add(logs ...*state.Log) { + l.mu.Lock() + defer l.mu.Unlock() + l.logs = append(l.logs, logs...) } func (l *logQueue) get() state.Logs { + l.mu.Lock() + defer l.mu.Unlock() + l.timeout = time.Now() tmp := l.logs l.logs = nil @@ -1039,16 +1053,24 @@ func (l *logQueue) get() state.Logs { } type hashQueue struct { + mu sync.Mutex + hashes []common.Hash timeout time.Time id int } func (l *hashQueue) add(hashes ...common.Hash) { + l.mu.Lock() + defer l.mu.Unlock() + l.hashes = append(l.hashes, hashes...) } func (l *hashQueue) get() []common.Hash { + l.mu.Lock() + defer l.mu.Unlock() + l.timeout = time.Now() tmp := l.hashes l.hashes = nil |