From c655d59b5fc16bd6ddb752f84450f286b4a8b683 Mon Sep 17 00:00:00 2001 From: Jamie Lokier Date: Mon, 17 May 2021 10:45:32 +0100 Subject: [PATCH] Assembler: Rearrange logic where assembler tests call EVM Signed-off-by: Jamie Lokier --- nimbus/transaction/call_evm.nim | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/nimbus/transaction/call_evm.nim b/nimbus/transaction/call_evm.nim index 4ca061ec0..19e54801d 100644 --- a/nimbus/transaction/call_evm.nim +++ b/nimbus/transaction/call_evm.nim @@ -266,17 +266,21 @@ proc txCallEvm*(tx: Transaction, sender: EthAddress, vmState: BaseVMState, fork: proc asmSetupComputation(tx: Transaction, sender: EthAddress, vmState: BaseVMState, data: seq[byte], forkOverride = none(Fork)): Computation = - doAssert tx.isContractCreation - let gasUsed = 0 #tx.payload.intrinsicGas.GasInt + gasFees[fork][GasTXCreate] + # For these tests, create the new contract like `CREATE`, + # but then execute it like it's `CALL`. + doAssert tx.isContractCreation + let contractAddress = generateAddress(sender, vmState.readOnlyStateDB.getNonce(sender)) + vmState.mutateStateDB: + db.setCode(contractAddress, tx.payload) + vmState.setupTxContext( origin = sender, gasPrice = tx.gasPrice, forkOverride = forkOverride, ) - let contractAddress = generateAddress(sender, tx.nonce) let msg = Message( kind: evmcCall, depth: 0, @@ -288,9 +292,6 @@ proc asmSetupComputation(tx: Transaction, sender: EthAddress, vmState: BaseVMSta data: data ) - vmState.mutateStateDb: - db.setCode(contractAddress, tx.payload) - return newComputation(vmState, msg) proc asmSetupComputation(blockNumber: Uint256, chainDB: BaseChainDB, code,