From 0d3117344ae42890d95f0d8f659099434222e338 Mon Sep 17 00:00:00 2001 From: Jamie Lokier Date: Mon, 17 May 2021 10:36:34 +0100 Subject: [PATCH] Transaction: Change tx validation to use shared `setupComputation` Signed-off-by: Jamie Lokier --- nimbus/transaction/call_evm.nim | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/nimbus/transaction/call_evm.nim b/nimbus/transaction/call_evm.nim index 2631fa557..4ca061ec0 100644 --- a/nimbus/transaction/call_evm.nim +++ b/nimbus/transaction/call_evm.nim @@ -212,26 +212,17 @@ proc rpcEstimateGas*(call: RpcCallData, header: BlockHeader, chain: BaseChainDB, proc txSetupComputation(tx: Transaction, sender: EthAddress, vmState: BaseVMState, fork: Fork): Computation = var gas = tx.gasLimit - tx.intrinsicGas(fork) assert gas >= 0 - - vmState.setupTxContext( - origin = sender, - gasPrice = tx.gasPrice, - forkOverride = some(fork) - ) - - let msg = Message( - kind: if tx.isContractCreation: evmcCreate else: evmcCall, - depth: 0, - gas: gas, - sender: sender, - contractAddress: tx.to, - codeAddress: tx.to, - value: tx.value, - data: tx.payload - ) - - result = newComputation(vmState, msg) - doAssert result.isOriginComputation + return setupComputation(CallParams( + vmState: vmState, + forkOverride: some(fork), + gasPrice: tx.gasPrice, + gasLimit: gas, + sender: sender, + to: tx.to, + isCreate: tx.isContractCreation, + value: tx.value, + input: tx.payload + )) proc txRefundgas(tx: Transaction, sender: EthAddress, c: Computation) = let maxRefund = (tx.gasLimit - c.gasMeter.gasRemaining) div 2