aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/instructions.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/vm/instructions.go')
-rw-r--r--core/vm/instructions.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/core/vm/instructions.go b/core/vm/instructions.go
index 79aee60d2..3352877c1 100644
--- a/core/vm/instructions.go
+++ b/core/vm/instructions.go
@@ -514,7 +514,12 @@ func opCreate(instr instruction, pc *uint64, env Environment, contract *Contract
input = memory.Get(offset.Int64(), size.Int64())
gas = new(big.Int).Set(contract.Gas)
)
- contract.UseGas(contract.Gas)
+ if env.RuleSet().GasTable(env.BlockNumber()).CreateBySuicide != nil {
+ gas.Div(gas, n64)
+ gas = gas.Sub(contract.Gas, gas)
+ }
+
+ contract.UseGas(gas)
_, addr, suberr := env.Create(contract, input, gas, contract.Price, value)
// Push item on the stack based on the returned error. If the ruleset is
// homestead we must check for CodeStoreOutOfGasError (homestead only