eth_getTransactionReceipt
This commit is contained in:
parent
3dad7fbba8
commit
c53b2502d7
|
@ -374,14 +374,44 @@ proc setupP2PRPC*(node: EthereumNode, rpcsrv: RpcServer) =
|
||||||
|
|
||||||
# Currently defined as a variant type so this might need rethinking
|
# Currently defined as a variant type so this might need rethinking
|
||||||
# See: https://github.com/status-im/nim-json-rpc/issues/29
|
# See: https://github.com/status-im/nim-json-rpc/issues/29
|
||||||
#[
|
|
||||||
|
proc populateReceipt(receipt: Receipt, transaction: Transaction, txIndex: int, blockHeader: BlockHeader): ReceiptObject =
|
||||||
|
result.transactionHash = transaction.rlpHash
|
||||||
|
result.transactionIndex = txIndex
|
||||||
|
result.blockHash = blockHeader.hash
|
||||||
|
result.blockNumber = blockHeader.blockNumber
|
||||||
|
# TODO: Get sender
|
||||||
|
#result.sender: EthAddress
|
||||||
|
result.to = new EthAddress
|
||||||
|
result.to[] = transaction.to
|
||||||
|
# TODO: Get gas used
|
||||||
|
#result.cumulativeGasUsed: int
|
||||||
|
#result.gasUsed: int
|
||||||
|
# TODO: Get contract address if the transaction was a contract creation.
|
||||||
|
result.contractAddress = nil
|
||||||
|
# TODO: See Wiki for details. list of log objects, which this transaction generated.
|
||||||
|
result.logs = @[]
|
||||||
|
result.logsBloom = blockHeader.bloom
|
||||||
|
# post-transaction stateroot (pre Byzantium).
|
||||||
|
result.root = blockHeader.stateRoot
|
||||||
|
# 1 = success, 0 = failure.
|
||||||
|
result.status = 1
|
||||||
|
|
||||||
rpcsrv.rpc("eth_getTransactionReceipt") do(data: HexDataStr) -> ReceiptObject:
|
rpcsrv.rpc("eth_getTransactionReceipt") do(data: HexDataStr) -> ReceiptObject:
|
||||||
## Returns the receipt of a transaction by transaction hash.
|
## Returns the receipt of a transaction by transaction hash.
|
||||||
##
|
##
|
||||||
## data: hash of a transaction.
|
## data: hash of a transaction.
|
||||||
## Returns transaction receipt.
|
## Returns transaction receipt.
|
||||||
discard
|
let
|
||||||
]#
|
h = data.string.strToHash()
|
||||||
|
txDetails = chain.getTransactionKey(h)
|
||||||
|
header = chain.getBlockHeader(txDetails.blockNumber)
|
||||||
|
body = chain.getBlockBody(h)
|
||||||
|
var idx = 0
|
||||||
|
for receipt in chain.getReceipts(header, Receipt):
|
||||||
|
if idx == txDetails.index:
|
||||||
|
return populateReceipt(receipt, body.transactions[txDetails.index], txDetails.index, header)
|
||||||
|
idx.inc
|
||||||
|
|
||||||
rpcsrv.rpc("eth_getUncleByBlockHashAndIndex") do(data: HexDataStr, quantity: int64) -> BlockObject:
|
rpcsrv.rpc("eth_getUncleByBlockHashAndIndex") do(data: HexDataStr, quantity: int64) -> BlockObject:
|
||||||
## Returns information about a uncle of a block by hash and uncle index position.
|
## Returns information about a uncle of a block by hash and uncle index position.
|
||||||
|
@ -439,7 +469,6 @@ proc setupP2PRPC*(node: EthereumNode, rpcsrv: RpcServer) =
|
||||||
## Returns true if the filter was successfully uninstalled, otherwise false.
|
## Returns true if the filter was successfully uninstalled, otherwise false.
|
||||||
discard
|
discard
|
||||||
|
|
||||||
#[
|
|
||||||
rpcsrv.rpc("eth_getFilterChanges") do(filterId: int) -> seq[LogObject]:
|
rpcsrv.rpc("eth_getFilterChanges") do(filterId: int) -> seq[LogObject]:
|
||||||
## Polling method for a filter, which returns an list of logs which occurred since last poll.
|
## Polling method for a filter, which returns an list of logs which occurred since last poll.
|
||||||
##
|
##
|
||||||
|
@ -451,6 +480,7 @@ proc setupP2PRPC*(node: EthereumNode, rpcsrv: RpcServer) =
|
||||||
## Returns a list of all logs matching filter with given id.
|
## Returns a list of all logs matching filter with given id.
|
||||||
result = @[]
|
result = @[]
|
||||||
|
|
||||||
|
#[
|
||||||
rpcsrv.rpc("eth_getLogs") do(filterOptions: FilterOptions) -> seq[LogObject]:
|
rpcsrv.rpc("eth_getLogs") do(filterOptions: FilterOptions) -> seq[LogObject]:
|
||||||
## filterOptions: settings for this filter.
|
## filterOptions: settings for this filter.
|
||||||
## Returns a list of all logs matching a given filter object.
|
## Returns a list of all logs matching a given filter object.
|
||||||
|
|
Loading…
Reference in New Issue