diff --git a/nimbus/p2p/executor.nim b/nimbus/p2p/executor.nim index ec1ea4171..5eab39212 100644 --- a/nimbus/p2p/executor.nim +++ b/nimbus/p2p/executor.nim @@ -85,9 +85,7 @@ proc makeReceipt(vmState: BaseVMState, fork = FkFrontier): Receipt = if fork < FkByzantium: result.stateRootOrStatus = hashOrStatus(vmState.accountDb.rootHash) else: - # TODO: post byzantium fork use status instead of rootHash - let vmStatus = true # success or failure - result.stateRootOrStatus = hashOrStatus(vmStatus) + result.stateRootOrStatus = hashOrStatus(vmState.status) result.cumulativeGasUsed = vmState.cumulativeGasUsed result.logs = vmState.getAndClearLogEntries() diff --git a/nimbus/vm_state_transactions.nim b/nimbus/vm_state_transactions.nim index ca88455b9..14a906779 100644 --- a/nimbus/vm_state_transactions.nim +++ b/nimbus/vm_state_transactions.nim @@ -87,8 +87,9 @@ proc execComputation*(computation: var BaseComputation): bool = if computation.getFork >= FkSpurious: computation.collectTouchedAccounts(computation.vmState.touchedAccounts) - + result = computation.isSuccess + computation.vmstate.status = result if result: computation.vmState.addLogs(computation.logEntries) diff --git a/nimbus/vm_types.nim b/nimbus/vm_types.nim index 10899b100..f3be67e5d 100644 --- a/nimbus/vm_types.nim +++ b/nimbus/vm_types.nim @@ -26,6 +26,7 @@ type accountDb* : AccountStateDB cumulativeGasUsed*: GasInt touchedAccounts*: HashSet[EthAddress] + status* : bool AccessLogs* = ref object reads*: Table[string, string]