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 <jamie@shareable.org>
This commit is contained in:
Jamie Lokier 2021-05-17 11:03:39 +01:00
parent 8b33cbe568
commit a5385e5344
1 changed files with 12 additions and 19 deletions

View File

@ -88,26 +88,19 @@ type
data*: seq[byte] data*: seq[byte]
contractCreation*: bool contractCreation*: bool
proc rpcSetupComputation(vmState: BaseVMState, call: RpcCallData, proc rpcSetupComputation(vmState: BaseVMState, rpc: RpcCallData,
gasLimit: GasInt, forkOverride = none(Fork)): Computation = gasLimit: GasInt, forkOverride = none(Fork)): Computation =
vmState.setupTxContext( return setupComputation(CallParams(
origin = call.source, vmState: vmState,
gasPrice = call.gasPrice, forkOverride: forkOverride,
forkOverride = forkOverride, gasPrice: rpc.gasPrice,
) gasLimit: gasLimit,
sender: rpc.source,
var msg = Message( to: rpc.to,
kind: if call.contractCreation: evmcCreate else: evmcCall, isCreate: rpc.contractCreation,
depth: 0, value: rpc.value,
gas: gasLimit, input: rpc.data
sender: call.source, ))
contractAddress: call.to,
codeAddress: call.to,
value: call.value,
data: call.data
)
return newComputation(vmState, msg)
proc rpcDoCall*(call: RpcCallData, header: BlockHeader, chain: BaseChainDB): HexDataStr = proc rpcDoCall*(call: RpcCallData, header: BlockHeader, chain: BaseChainDB): HexDataStr =
# TODO: handle revert and error # TODO: handle revert and error