From a5385e53441faf5375bfdc1d0c9b44fc07a750c4 Mon Sep 17 00:00:00 2001 From: Jamie Lokier Date: Mon, 17 May 2021 11:03:39 +0100 Subject: [PATCH] RPC/GraphQL: Change RPC/GraphQL to use shared `setupComputation` Change RPC/GraphQL calls to the EVM to use shared `setupComputation` instead of their own special variant. Signed-off-by: Jamie Lokier --- nimbus/transaction/call_evm.nim | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/nimbus/transaction/call_evm.nim b/nimbus/transaction/call_evm.nim index f270eb1d4..1cf4cf9cf 100644 --- a/nimbus/transaction/call_evm.nim +++ b/nimbus/transaction/call_evm.nim @@ -88,26 +88,19 @@ type data*: seq[byte] contractCreation*: bool -proc rpcSetupComputation(vmState: BaseVMState, call: RpcCallData, +proc rpcSetupComputation(vmState: BaseVMState, rpc: RpcCallData, gasLimit: GasInt, forkOverride = none(Fork)): Computation = - vmState.setupTxContext( - origin = call.source, - gasPrice = call.gasPrice, - forkOverride = forkOverride, - ) - - var msg = Message( - kind: if call.contractCreation: evmcCreate else: evmcCall, - depth: 0, - gas: gasLimit, - sender: call.source, - contractAddress: call.to, - codeAddress: call.to, - value: call.value, - data: call.data - ) - - return newComputation(vmState, msg) + return setupComputation(CallParams( + vmState: vmState, + forkOverride: forkOverride, + gasPrice: rpc.gasPrice, + gasLimit: gasLimit, + sender: rpc.source, + to: rpc.to, + isCreate: rpc.contractCreation, + value: rpc.value, + input: rpc.data + )) proc rpcDoCall*(call: RpcCallData, header: BlockHeader, chain: BaseChainDB): HexDataStr = # TODO: handle revert and error