| 159 | } |
| 160 | |
| 161 | func MakePreState(db database.Database, accounts core.GenesisAlloc) *state.StateDB { |
| 162 | sdb := state.NewDatabase(db) |
| 163 | statedb, _ := state.New(common.Hash{}, sdb) |
| 164 | for addr, a := range accounts { |
| 165 | statedb.SetCode(addr, a.Code) |
| 166 | statedb.SetNonce(addr, a.Nonce) |
| 167 | statedb.SetBalance(addr, a.Balance) |
| 168 | for k, v := range a.Storage { |
| 169 | statedb.SetState(addr, k, v) |
| 170 | } |
| 171 | } |
| 172 | // Commit and re-open to start with a clean state. |
| 173 | root, _ := statedb.Commit(false) |
| 174 | statedb, _ = state.New(root, sdb) |
| 175 | return statedb |
| 176 | } |
| 177 | |
| 178 | func (t *StateTest) genesis(config *configs.ChainConfig) *core.Genesis { |
| 179 | return &core.Genesis{ |