diff options
author | Felix Lange <fjl@twurst.com> | 2016-09-23 03:04:58 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2016-09-26 16:31:18 +0800 |
commit | dc2b23c869a38cf5dce72479593c5ad6021cbf1b (patch) | |
tree | 72e11683e2cacbee0977d4b7265cf0f973974f71 /tests/util.go | |
parent | 6999f1da6b0f8c93b40aa90250e55166018a11a5 (diff) | |
download | go-tangerine-dc2b23c869a38cf5dce72479593c5ad6021cbf1b.tar go-tangerine-dc2b23c869a38cf5dce72479593c5ad6021cbf1b.tar.gz go-tangerine-dc2b23c869a38cf5dce72479593c5ad6021cbf1b.tar.bz2 go-tangerine-dc2b23c869a38cf5dce72479593c5ad6021cbf1b.tar.lz go-tangerine-dc2b23c869a38cf5dce72479593c5ad6021cbf1b.tar.xz go-tangerine-dc2b23c869a38cf5dce72479593c5ad6021cbf1b.tar.zst go-tangerine-dc2b23c869a38cf5dce72479593c5ad6021cbf1b.zip |
[release/1.4.13] core/state: track all accounts in canon state
This change introduces a global, per-state cache that keeps account data
in the canon state. Thanks to @karalabe for lots of fixes.
(cherry picked from commit a59a93f476434f2805c8fd3e10bf1b2f579b078f)
Diffstat (limited to 'tests/util.go')
-rw-r--r-- | tests/util.go | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/tests/util.go b/tests/util.go index a13ae3610..df3432bdf 100644 --- a/tests/util.go +++ b/tests/util.go @@ -103,16 +103,17 @@ func (self Log) Topics() [][]byte { return t } -func StateObjectFromAccount(db ethdb.Database, addr string, account Account) *state.StateObject { - obj := state.NewStateObject(common.HexToAddress(addr), db) - obj.SetBalance(common.Big(account.Balance)) - +func StateObjectFromAccount(db ethdb.Database, addr string, account Account, onDirty func(common.Address)) *state.StateObject { if common.IsHex(account.Code) { account.Code = account.Code[2:] } - obj.SetCode(common.Hex2Bytes(account.Code)) - obj.SetNonce(common.Big(account.Nonce).Uint64()) - + code := common.Hex2Bytes(account.Code) + obj := state.NewObject(common.HexToAddress(addr), state.Account{ + Balance: common.Big(account.Balance), + CodeHash: crypto.Keccak256(code), + Nonce: common.Big(account.Nonce).Uint64(), + }, onDirty) + obj.SetCode(code) return obj } |