forked from cerc-io/laconicd-deprecated
Cosmos PR changes (#158)
* Changes necessary for enforced custom account encoding/decoding and keyring keybase changes * updates cosmos dependency and fixes inconsistency in gas usage for simulated/real txs * Update PR changes * Remove unused password prompt when using OS keyring * Update from changes to sdk * Update to merged PR commit :the_horns: * updated code to handle keyring backend options * update documentation and replace cosmos-sdk with fork (temporarily) * update cosmos dependency from fork * update documentation
This commit is contained in:
@@ -56,6 +56,11 @@ func (st StateTransition) TransitionCSDB(ctx sdk.Context) (*big.Int, sdk.Result)
|
||||
csdb = st.Csdb.Copy()
|
||||
}
|
||||
|
||||
// This gas meter is set up to consume gas from gaskv during evm execution and be ignored
|
||||
currentGasMeter := ctx.GasMeter()
|
||||
evmGasMeter := sdk.NewInfiniteGasMeter()
|
||||
csdb.WithContext(ctx.WithGasMeter(evmGasMeter))
|
||||
|
||||
// Clear cache of accounts to handle changes outside of the EVM
|
||||
csdb.UpdateAccounts()
|
||||
|
||||
@@ -72,13 +77,7 @@ func (st StateTransition) TransitionCSDB(ctx sdk.Context) (*big.Int, sdk.Result)
|
||||
GasPrice: ctx.MinGasPrices().AmountOf(emint.DenomDefault).Int,
|
||||
}
|
||||
|
||||
// This gas meter is set up to consume gas from gaskv during evm execution and be ignored
|
||||
evmGasMeter := sdk.NewInfiniteGasMeter()
|
||||
|
||||
vmenv := vm.NewEVM(
|
||||
context, csdb.WithContext(ctx.WithGasMeter(evmGasMeter)),
|
||||
GenerateChainConfig(st.ChainID), vm.Config{},
|
||||
)
|
||||
vmenv := vm.NewEVM(context, csdb, GenerateChainConfig(st.ChainID), vm.Config{})
|
||||
|
||||
var (
|
||||
ret []byte
|
||||
@@ -130,6 +129,7 @@ func (st StateTransition) TransitionCSDB(ctx sdk.Context) (*big.Int, sdk.Result)
|
||||
}
|
||||
|
||||
// TODO: Refund unused gas here, if intended in future
|
||||
|
||||
if !st.Simulate {
|
||||
// Finalise state if not a simulated transaction
|
||||
st.Csdb.Finalise(true) // Change to depend on config
|
||||
@@ -137,7 +137,7 @@ func (st StateTransition) TransitionCSDB(ctx sdk.Context) (*big.Int, sdk.Result)
|
||||
|
||||
// Consume gas from evm execution
|
||||
// Out of gas check does not need to be done here since it is done within the EVM execution
|
||||
ctx.GasMeter().ConsumeGas(gasLimit-leftOverGas, "EVM execution consumption")
|
||||
ctx.WithGasMeter(currentGasMeter).GasMeter().ConsumeGas(gasLimit-leftOverGas, "EVM execution consumption")
|
||||
|
||||
return bloomInt, sdk.Result{Data: returnData, GasUsed: st.GasLimit - leftOverGas}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user