aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2015-09-02 18:55:11 +0800
committerFelix Lange <fjl@twurst.com>2015-10-17 16:24:34 +0800
commitde8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608 (patch)
tree59930f3d627940e1b73030ee2c5685104a04ee34 /tests
parent10ed107ba2001d1aabba3d319ba88c5ce6e8fdc0 (diff)
downloaddexon-de8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608.tar
dexon-de8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608.tar.gz
dexon-de8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608.tar.bz2
dexon-de8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608.tar.lz
dexon-de8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608.tar.xz
dexon-de8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608.tar.zst
dexon-de8d5aaa92ff843e6960eb9b7bd7ec1c1ebc6608.zip
core, core/state: move gas tracking out of core/state
The amount of gas available for tx execution was tracked in the StateObject representing the coinbase account. This commit makes the gas counter a separate type in package core, which avoids unintended consequences of intertwining the counter with state logic.
Diffstat (limited to 'tests')
-rw-r--r--tests/state_test_util.go8
1 files changed, 3 insertions, 5 deletions
diff --git a/tests/state_test_util.go b/tests/state_test_util.go
index 676d9ed8c..352fe3570 100644
--- a/tests/state_test_util.go
+++ b/tests/state_test_util.go
@@ -223,7 +223,6 @@ func RunState(statedb *state.StateDB, env, tx map[string]string) ([]byte, vm.Log
price = common.Big(tx["gasPrice"])
value = common.Big(tx["value"])
nonce = common.Big(tx["nonce"]).Uint64()
- caddr = common.HexToAddress(env["currentCoinbase"])
)
var to *common.Address
@@ -235,16 +234,15 @@ func RunState(statedb *state.StateDB, env, tx map[string]string) ([]byte, vm.Log
vm.Precompiled = vm.PrecompiledContracts()
snapshot := statedb.Copy()
- coinbase := statedb.GetOrNewStateObject(caddr)
- coinbase.SetGasLimit(common.Big(env["currentGasLimit"]))
+ gaspool := new(core.GasPool).AddGas(common.Big(env["currentGasLimit"]))
key, _ := hex.DecodeString(tx["secretKey"])
addr := crypto.PubkeyToAddress(crypto.ToECDSA(key).PublicKey)
message := NewMessage(addr, to, data, value, gas, price, nonce)
vmenv := NewEnvFromMap(statedb, env, tx)
vmenv.origin = addr
- ret, _, err := core.ApplyMessage(vmenv, message, coinbase)
- if core.IsNonceErr(err) || core.IsInvalidTxErr(err) || state.IsGasLimitErr(err) {
+ ret, _, err := core.ApplyMessage(vmenv, message, gaspool)
+ if core.IsNonceErr(err) || core.IsInvalidTxErr(err) || core.IsGasLimitErr(err) {
statedb.Set(snapshot)
}
statedb.Commit()