Skip to content

Commit

Permalink
core/vm,params/vars: implement missing SLOAD gas cost change (#144)
Browse files Browse the repository at this point in the history
- https://eips.ethereum.org/EIPS/eip-2200
- https://eips.ethereum.org/EIPS/eip-1884

EIP2200 is implemented simultaneously with 1884
on the ETH nets, rendering this somewhat redundant.
But other networks may care, and this changeset
should be handled carefully, since either or both
2200 1884 may be live with or without the other.

Signed-off-by: meows <b5c6@protonmail.com>
  • Loading branch information
meowsbits committed Feb 13, 2020
1 parent 4d4cf33 commit 0cd6b91
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
3 changes: 2 additions & 1 deletion core/vm/eips.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ func enableSelfBalance(jt *JumpTable) {
// - Define SELFBALANCE, with cost GasFastStep (5)
func enable1884(jt *JumpTable) {
// Gas cost changes
jt[SLOAD].constantGas = vars.SloadGasEIP1884
jt[BALANCE].constantGas = vars.BalanceGasEIP1884
jt[EXTCODEHASH].constantGas = vars.ExtcodeHashGasEIP1884
jt[SLOAD].constantGas = vars.SloadGasEIP1884

// New opcode
enableSelfBalance(jt)
Expand Down Expand Up @@ -92,5 +92,6 @@ func opChainID(pc *uint64, interpreter *EVMInterpreter, contract *Contract, memo

// enable2200 applies EIP-2200 (Rebalance net-metered SSTORE)
func enable2200(jt *JumpTable) {
jt[SLOAD].constantGas = vars.SloadGasEIP2200
jt[SSTORE].dynamicGas = gasSStoreEIP2200
}
1 change: 1 addition & 0 deletions params/vars/protocol_params.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ var (
SloadGasFrontier uint64 = 50
SloadGasEIP150 uint64 = 200
SloadGasEIP1884 uint64 = 800 // Cost of SLOAD after EIP 1884 (part of Istanbul)
SloadGasEIP2200 uint64 = 800 // Cost of SLOAD after EIP 2200 (part of Istanbul)
ExtcodeHashGasConstantinople uint64 = 400 // Cost of EXTCODEHASH (introduced in Constantinople)
ExtcodeHashGasEIP1884 uint64 = 700 // Cost of EXTCODEHASH after EIP 1884 (part in Istanbul)
SelfdestructGasEIP150 uint64 = 5000 // Cost of SELFDESTRUCT post EIP 150 (Tangerine)
Expand Down

0 comments on commit 0cd6b91

Please sign in to comment.