github.com/neatlab/neatio@v1.7.3-0.20220425043230-d903e92fcc75/chain/core/vm/gas.go (about) 1 package vm 2 3 import ( 4 "math/big" 5 ) 6 7 const ( 8 GasQuickStep uint64 = 2 9 GasFastestStep uint64 = 3 10 GasFastStep uint64 = 5 11 GasMidStep uint64 = 8 12 GasSlowStep uint64 = 10 13 GasExtStep uint64 = 20 14 ) 15 16 func callGas(isEip150 bool, availableGas, base uint64, callCost *big.Int) (uint64, error) { 17 if isEip150 { 18 availableGas = availableGas - base 19 gas := availableGas - availableGas/64 20 21 if !callCost.IsUint64() || gas < callCost.Uint64() { 22 return gas, nil 23 } 24 } 25 if !callCost.IsUint64() { 26 return 0, errGasUintOverflow 27 } 28 29 return callCost.Uint64(), nil 30 }