Update precompile gas costs case (cosmetic change)
This commit is contained in:
parent
3249c3e048
commit
6a4cd4ec67
|
@ -588,14 +588,14 @@ proc forkToSchedule*(fork: Fork): GasCosts =
|
||||||
|
|
||||||
const
|
const
|
||||||
## Precompile costs
|
## Precompile costs
|
||||||
GAS_SHA256* = 60
|
GasSHA256* = 60
|
||||||
GAS_SHA256WORD* = 12
|
GasSHA256Word* = 12
|
||||||
GAS_RIPEMD160* = 600
|
GasRIPEMD160* = 600
|
||||||
GAS_RIPEMD160WORD* = 120
|
GasRIPEMD160Word* = 120
|
||||||
GAS_IDENTITY* = 15
|
GasIdentity* = 15
|
||||||
GAS_IDENTITYWORD* = 3
|
GasIdentityWord* = 3
|
||||||
GAS_ECRECOVER* = 3000
|
GasECRecover* = 3000
|
||||||
GAS_ECADD* = 500
|
GasECAdd* = 500
|
||||||
GAS_ECMUL* = 40000
|
GasECMul* = 40000
|
||||||
GAS_ECPAIRING_BASE* = 100000
|
GasECPairingBase* = 100000
|
||||||
GAS_ECPAIRING_PER_POINT* = 80000
|
GasECPairingPerPoint* = 80000
|
||||||
|
|
|
@ -24,7 +24,7 @@ proc getSignature*(computation: BaseComputation): Signature =
|
||||||
|
|
||||||
proc ecRecover*(computation: var BaseComputation) =
|
proc ecRecover*(computation: var BaseComputation) =
|
||||||
computation.gasMeter.consumeGas(
|
computation.gasMeter.consumeGas(
|
||||||
GAS_ECRECOVER,
|
GasECRecover,
|
||||||
reason="ECRecover Precompile")
|
reason="ECRecover Precompile")
|
||||||
|
|
||||||
# TODO: Check endian
|
# TODO: Check endian
|
||||||
|
@ -43,7 +43,7 @@ proc ecRecover*(computation: var BaseComputation) =
|
||||||
proc sha256*(computation: var BaseComputation) =
|
proc sha256*(computation: var BaseComputation) =
|
||||||
let
|
let
|
||||||
wordCount = computation.msg.data.len div 32
|
wordCount = computation.msg.data.len div 32
|
||||||
gasFee = GAS_SHA256 + wordCount * GAS_SHA256WORD
|
gasFee = GasSHA256 + wordCount * GasSHA256Word
|
||||||
|
|
||||||
computation.gasMeter.consumeGas(gasFee, reason="SHA256 Precompile")
|
computation.gasMeter.consumeGas(gasFee, reason="SHA256 Precompile")
|
||||||
computation.rawOutput = @(keccak_256.digest(computation.msg.data).data)
|
computation.rawOutput = @(keccak_256.digest(computation.msg.data).data)
|
||||||
|
@ -52,7 +52,7 @@ proc sha256*(computation: var BaseComputation) =
|
||||||
proc ripemd160(computation: var BaseComputation) =
|
proc ripemd160(computation: var BaseComputation) =
|
||||||
let
|
let
|
||||||
wordCount = computation.msg.data.len div 32
|
wordCount = computation.msg.data.len div 32
|
||||||
gasFee = GAS_RIPEMD160 + wordCount * GAS_RIPEMD160WORD
|
gasFee = GasRIPEMD160 + wordCount * GasRIPEMD160Word
|
||||||
|
|
||||||
computation.gasMeter.consumeGas(gasFee, reason="RIPEMD160 Precompile")
|
computation.gasMeter.consumeGas(gasFee, reason="RIPEMD160 Precompile")
|
||||||
computation.rawOutput = @(nimcrypto.ripemd160.digest(computation.msg.data).data)
|
computation.rawOutput = @(nimcrypto.ripemd160.digest(computation.msg.data).data)
|
||||||
|
@ -61,9 +61,9 @@ proc ripemd160(computation: var BaseComputation) =
|
||||||
proc identity*(computation: var BaseComputation) =
|
proc identity*(computation: var BaseComputation) =
|
||||||
let
|
let
|
||||||
wordCount = computation.msg.data.len div 32
|
wordCount = computation.msg.data.len div 32
|
||||||
gasFee = GAS_IDENTITY + wordCount * GAS_IDENTITYWORD
|
gasFee = GasIdentity + wordCount * GasIdentityWord
|
||||||
|
|
||||||
computation.gasMeter.consumeGas(gas_fee, reason="Identity Precompile")
|
computation.gasMeter.consumeGas(gasFee, reason="Identity Precompile")
|
||||||
computation.rawOutput = computation.msg.data
|
computation.rawOutput = computation.msg.data
|
||||||
debug "Identity precompile", output = computation.rawOutput
|
debug "Identity precompile", output = computation.rawOutput
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ proc execPrecompiles*(computation: var BaseComputation): bool {.inline.} =
|
||||||
|
|
||||||
let lb = computation.msg.codeAddress[bOffset]
|
let lb = computation.msg.codeAddress[bOffset]
|
||||||
|
|
||||||
if lb < 9:
|
if lb in PrecompileAddresses.low.byte .. PrecompileAddresses.high.byte:
|
||||||
result = true
|
result = true
|
||||||
let precompile = PrecompileAddresses(lb)
|
let precompile = PrecompileAddresses(lb)
|
||||||
debug "Call precompile ", precompile = precompile, codeAddr = computation.msg.codeAddress
|
debug "Call precompile ", precompile = precompile, codeAddr = computation.msg.codeAddress
|
||||||
|
|
Loading…
Reference in New Issue