forked from cerc-io/laconicd-deprecated
app, ante, evm: Keeper StateDB refactor (#30)
* evm: keeper statedb refactor * keeper: implement stateDB account, balance, nonce and suicide functions * keeper: implement stateDB code and iterator functions * keeper: implement stateDB log and preimage functions * update code to use CommitStateDB * tests updates * journal changes (wip) * cache fields * journal and logs * minor cleanup * evm: remove journal related changes * evm: delete empty account code and storage state * app, evm: transient store * ante, evm: refund gas transient * evm: remove transient keeper state fields * address comments from review * evm: undo revision change
This commit is contained in:
@@ -105,6 +105,7 @@ func createAndTestGenesis(t *testing.T, cms sdk.CommitMultiStore, ak authkeeper.
|
||||
genBlock := ethcore.DefaultGenesisBlock()
|
||||
ms := cms.CacheMultiStore()
|
||||
ctx := sdk.NewContext(ms, tmproto.Header{}, false, logger)
|
||||
evmKeeper.CommitStateDB.WithContext(ctx)
|
||||
|
||||
// Set the default Ethermint parameters to the parameter keeper store
|
||||
evmKeeper.SetParams(ctx, evmtypes.DefaultParams())
|
||||
@@ -123,23 +124,23 @@ func createAndTestGenesis(t *testing.T, cms sdk.CommitMultiStore, ak authkeeper.
|
||||
addr := ethcmn.HexToAddress(addrStr)
|
||||
acc := genBlock.Alloc[addr]
|
||||
|
||||
evmKeeper.AddBalance(ctx, addr, acc.Balance)
|
||||
evmKeeper.SetCode(ctx, addr, acc.Code)
|
||||
evmKeeper.SetNonce(ctx, addr, acc.Nonce)
|
||||
evmKeeper.CommitStateDB.AddBalance(addr, acc.Balance)
|
||||
evmKeeper.CommitStateDB.SetCode(addr, acc.Code)
|
||||
evmKeeper.CommitStateDB.SetNonce(addr, acc.Nonce)
|
||||
|
||||
for key, value := range acc.Storage {
|
||||
evmKeeper.SetState(ctx, addr, key, value)
|
||||
evmKeeper.CommitStateDB.SetState(addr, key, value)
|
||||
}
|
||||
}
|
||||
|
||||
// get balance of one of the genesis account having 400 ETH
|
||||
b := evmKeeper.GetBalance(ctx, genInvestor)
|
||||
b := evmKeeper.CommitStateDB.GetBalance(genInvestor)
|
||||
require.Equal(t, "200000000000000000000", b.String())
|
||||
|
||||
// commit the stateDB with 'false' to delete empty objects
|
||||
//
|
||||
// NOTE: Commit does not yet return the intra merkle root (version)
|
||||
_, err := evmKeeper.Commit(ctx, false)
|
||||
_, err := evmKeeper.CommitStateDB.Commit(false)
|
||||
require.NoError(t, err)
|
||||
|
||||
// persist multi-store cache state
|
||||
@@ -257,13 +258,14 @@ func TestImportBlocks(t *testing.T) {
|
||||
ms := cms.CacheMultiStore()
|
||||
ctx := sdk.NewContext(ms, tmproto.Header{}, false, logger)
|
||||
ctx = ctx.WithBlockHeight(int64(block.NumberU64()))
|
||||
evmKeeper.CommitStateDB.WithContext(ctx)
|
||||
|
||||
if chainConfig.DAOForkSupport && chainConfig.DAOForkBlock != nil && chainConfig.DAOForkBlock.Cmp(block.Number()) == 0 {
|
||||
applyDAOHardFork(evmKeeper)
|
||||
}
|
||||
|
||||
for i, tx := range block.Transactions() {
|
||||
evmKeeper.Prepare(ctx, tx.Hash(), block.Hash(), i)
|
||||
evmKeeper.CommitStateDB.Prepare(tx.Hash(), block.Hash(), i)
|
||||
// evmKeeper.CommitStateDB.Set(block.Hash())
|
||||
|
||||
receipt, gas, err := applyTransaction(
|
||||
|
||||
Reference in New Issue
Block a user