Merge pull request #1118 from ethcore/implementreceiptgasused
Implement receipt's gasUsed field
This commit is contained in:
commit
e952d62950
@ -580,14 +580,21 @@ impl<V> BlockChainClient for Client<V> where V: Verifier {
|
||||
let block_number = tx.block_number.clone();
|
||||
let transaction_hash = tx.hash();
|
||||
let transaction_index = tx.transaction_index;
|
||||
let prior_gas_used = match tx.transaction_index {
|
||||
0 => U256::zero(),
|
||||
i => {
|
||||
let prior_address = TransactionAddress { block_hash: address.block_hash, index: i - 1 };
|
||||
let prior_receipt = self.chain.transaction_receipt(&prior_address).expect("Transaction receipt at `address` exists; `prior_address` has lower index in same block; qed");
|
||||
prior_receipt.gas_used
|
||||
}
|
||||
};
|
||||
Some(LocalizedReceipt {
|
||||
transaction_hash: tx.hash(),
|
||||
transaction_index: tx.transaction_index,
|
||||
block_hash: tx.block_hash,
|
||||
block_number: tx.block_number,
|
||||
// TODO: to fix this, query all previous transaction receipts and retrieve their gas usage
|
||||
cumulative_gas_used: receipt.gas_used,
|
||||
gas_used: receipt.gas_used,
|
||||
gas_used: receipt.gas_used - prior_gas_used,
|
||||
contract_address: match tx.action {
|
||||
Action::Call(_) => None,
|
||||
Action::Create => Some(contract_address(&tx.sender().unwrap(), &tx.nonce))
|
||||
|
@ -91,9 +91,9 @@ pub struct LocalizedReceipt {
|
||||
pub block_hash: H256,
|
||||
/// Block number.
|
||||
pub block_number: BlockNumber,
|
||||
/// Cumulative gas used.
|
||||
/// The total gas used in the block following execution of the transaction.
|
||||
pub cumulative_gas_used: U256,
|
||||
/// Gas used.
|
||||
/// The gas used in the execution of the transaction. Note the difference of meaning to `Receipt::gas_used`.
|
||||
pub gas_used: U256,
|
||||
/// Contract address.
|
||||
pub contract_address: Option<Address>,
|
||||
|
@ -117,10 +117,10 @@ Sealing/Mining Options:
|
||||
|
||||
Footprint Options:
|
||||
--tracing BOOL Indicates if full transaction tracing should be
|
||||
enabled. Works only if client had been fully synced with
|
||||
tracing enabled. BOOL may be one of auto, on, off.
|
||||
auto uses last used value of this option (off if it does
|
||||
not exist) [default: auto].
|
||||
enabled. Works only if client had been fully synced
|
||||
with tracing enabled. BOOL may be one of auto, on,
|
||||
off. auto uses last used value of this option (off
|
||||
if it does not exist) [default: auto].
|
||||
--pruning METHOD Configure pruning of the state/storage trie. METHOD
|
||||
may be one of auto, archive, fast, basic, light:
|
||||
archive - keep all state trie data. No pruning.
|
||||
|
Loading…
Reference in New Issue
Block a user