|
|
|
@ -197,7 +197,7 @@ var ( |
|
|
|
|
gasStaticCallEIP2929 = makeCallVariantGasCallEIP2929(gasStaticCall) |
|
|
|
|
gasCallCodeEIP2929 = makeCallVariantGasCallEIP2929(gasCallCode) |
|
|
|
|
gasSelfdestructEIP2929 = makeSelfdestructGasFn(true) |
|
|
|
|
// gasSelfdestructEIP3529 implements the changes in EIP-2539 (no refunds)
|
|
|
|
|
// gasSelfdestructEIP3529 implements the changes in EIP-3529 (no refunds)
|
|
|
|
|
gasSelfdestructEIP3529 = makeSelfdestructGasFn(false) |
|
|
|
|
|
|
|
|
|
// gasSStoreEIP2929 implements gas cost for SSTORE according to EIP-2929
|
|
|
|
@ -214,12 +214,12 @@ var ( |
|
|
|
|
// see gasSStoreEIP2200(...) in core/vm/gas_table.go for more info about how EIP 2200 is specified
|
|
|
|
|
gasSStoreEIP2929 = makeGasSStoreFunc(params.SstoreClearsScheduleRefundEIP2200) |
|
|
|
|
|
|
|
|
|
// gasSStoreEIP2539 implements gas cost for SSTORE according to EIP-2539
|
|
|
|
|
// gasSStoreEIP3529 implements gas cost for SSTORE according to EIP-3529
|
|
|
|
|
// Replace `SSTORE_CLEARS_SCHEDULE` with `SSTORE_RESET_GAS + ACCESS_LIST_STORAGE_KEY_COST` (4,800)
|
|
|
|
|
gasSStoreEIP3529 = makeGasSStoreFunc(params.SstoreClearsScheduleRefundEIP3529) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
// makeSelfdestructGasFn can create the selfdestruct dynamic gas function for EIP-2929 and EIP-2539
|
|
|
|
|
// makeSelfdestructGasFn can create the selfdestruct dynamic gas function for EIP-2929 and EIP-3529
|
|
|
|
|
func makeSelfdestructGasFn(refundsEnabled bool) gasFunc { |
|
|
|
|
gasFunc := func(evm *EVM, contract *Contract, stack *Stack, mem *Memory, memorySize uint64) (uint64, error) { |
|
|
|
|
var ( |
|
|
|
|