From ff08a6ad950db1007176c52c3c3b2284cb65732a Mon Sep 17 00:00:00 2001 From: andri lim Date: Tue, 11 Dec 2018 16:01:26 +0700 Subject: [PATCH] fix some typo --- nimbus/p2p/chain.nim | 26 +++++++++++++++++--------- nimbus/rpc/p2p.nim | 1 - 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/nimbus/p2p/chain.nim b/nimbus/p2p/chain.nim index 1c2a073b5..f14c8b44b 100644 --- a/nimbus/p2p/chain.nim +++ b/nimbus/p2p/chain.nim @@ -1,14 +1,15 @@ import ../db/[db_chain, state_db], eth_common, chronicles, ../vm_state, ../vm_types, ../transaction, ranges, - ../vm/[computation, interpreter_dispatch, message], ../constants, stint, nimcrypto, + ../vm/[computation, interpreter_dispatch, message, interpreter/vm_forks], ../constants, stint, nimcrypto, ../vm_state_transactions, sugar, ../utils, eth_trie/db, ../tracer, ./executor, json, eth_bloom, strutils type - # these types need to eradicated + # TODO: these types need to be removed # once eth_bloom and eth_common sync'ed Bloom = eth_common.BloomFilter LogsBloom = eth_bloom.BloomFilter +# TODO: move these three receipt procs below somewhere else more appropriate func logsBloom(logs: openArray[Log]): LogsBloom = for log in logs: result.incl log.address @@ -21,12 +22,17 @@ func createBloom*(receipts: openArray[Receipt]): Bloom = bloom.value = bloom.value or logsBloom(receipt.logs).value result = bloom.value.toByteArrayBE -proc makeReceipt(vmState: BaseVMState, stateRoot: Hash256, cumulativeGasUsed: GasInt): Receipt = - # TODO: post byzantium fork use status instead of rootHash - # currently, vmState.rootHash vs stateDb.rootHash can be different - # need to wait #188 solved - #result.stateRootOrStatus = hashOrStatus(vmState.blockHeader.stateRoot) - result.stateRootOrStatus = hashOrStatus(stateRoot) +proc makeReceipt(vmState: BaseVMState, stateRoot: Hash256, cumulativeGasUsed: GasInt, fork = FkFrontier): Receipt = + if fork < FkByzantium: + # TODO: which one: vmState.blockHeader.stateRoot or stateDb.rootHash? + # currently, vmState.blockHeader.stateRoot vs stateDb.rootHash can be different + # need to wait #188 solved + result.stateRootOrStatus = hashOrStatus(stateRoot) + else: + # TODO: post byzantium fork use status instead of rootHash + let vmStatus = true # success or failure + result.stateRootOrStatus = hashOrStatus(vmStatus) + result.cumulativeGasUsed = cumulativeGasUsed result.logs = vmState.getAndClearLogEntries() result.bloom = logsBloom(result.logs).value.toByteArrayBE @@ -91,7 +97,9 @@ method persistBlocks*(c: Chain, headers: openarray[BlockHeader], bodies: openarr if tx.getSender(sender): let txFee = processTransaction(stateDb, tx, sender, vmState) - # perhaps this can be moved somewhere else + # perhaps this can be altered somehow + # or processTransaction return only gasUsed + # a `div` here is ugly and possibly div by zero let gasUsed = (txFee div tx.gasPrice.u256).truncate(GasInt) cumulativeGasUsed += gasUsed diff --git a/nimbus/rpc/p2p.nim b/nimbus/rpc/p2p.nim index bcaae864f..e2be27b5e 100644 --- a/nimbus/rpc/p2p.nim +++ b/nimbus/rpc/p2p.nim @@ -458,7 +458,6 @@ proc setupEthRpc*(node: EthereumNode, chain: BaseChainDB, rpcsrv: RpcServer) = let gasUsed = receipt.cumulativeGasUsed - prevGasUsed prevGasUsed = receipt.cumulativeGasUsed if idx == txDetails.index: - echo idx return populateReceipt(receipt, gasUsed, body.transactions[txDetails.index], txDetails.index, header) idx.inc