add txKind to report page
This commit is contained in:
parent
6ebe8ef2d4
commit
16cebc469b
|
@ -209,7 +209,7 @@ function transactionsRenderer(txId, nimbus, geth) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
txId = parseInt(txId);
|
let tx = geth.block.transactions[txId];
|
||||||
let ntx = nimbus.txTraces[txId];
|
let ntx = nimbus.txTraces[txId];
|
||||||
let gtx = geth.txTraces[txId];
|
let gtx = geth.txTraces[txId];
|
||||||
|
|
||||||
|
@ -231,6 +231,7 @@ function transactionsRenderer(txId, nimbus, geth) {
|
||||||
geth.receipts[txId]
|
geth.receipts[txId]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$(`<h4>Transaction Kind: ${tx.txKind}</h4>`).appendTo(container);
|
||||||
renderTx(ncr, gcr);
|
renderTx(ncr, gcr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -153,6 +153,12 @@
|
||||||
of other transactions. In opcode section, the same thing happened, perhaps only the first instruction
|
of other transactions. In opcode section, the same thing happened, perhaps only the first instruction
|
||||||
with red colored text have the problem, but it will affect the rest of other instructions.
|
with red colored text have the problem, but it will affect the rest of other instructions.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In <span class="uk-text-success">Transactions</span> section, you'll see the transaction kind.
|
||||||
|
It has three kind: <span class="uk-text-warning">Regular, ContractCreation, and ContractCall</span>.
|
||||||
|
Each kind will help you locate the bug in Nimbus implementation, they have their own proc.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Help Page -->
|
<!-- Help Page -->
|
||||||
|
|
|
@ -130,21 +130,32 @@ proc updateAccount*(address: string, account: JsonNode, blockNumber: Uint256) =
|
||||||
account["storage"][x["key"].getStr] = x["value"]
|
account["storage"][x["key"].getStr] = x["value"]
|
||||||
|
|
||||||
proc requestPostState*(premix, n: JsonNode, blockNumber: Uint256) =
|
proc requestPostState*(premix, n: JsonNode, blockNumber: Uint256) =
|
||||||
|
type
|
||||||
|
TxKind {.pure.} = enum
|
||||||
|
Regular
|
||||||
|
ContractCreation
|
||||||
|
ContractCall
|
||||||
|
|
||||||
let txs = n["transactions"]
|
let txs = n["transactions"]
|
||||||
if txs.len == 0: return
|
if txs.len == 0: return
|
||||||
|
|
||||||
let tracer = jsonTracer(postStateTracer)
|
let tracer = jsonTracer(postStateTracer)
|
||||||
for t in txs:
|
for t in txs:
|
||||||
|
var txKind = TxKind.Regular
|
||||||
let tx = parseTransaction(t)
|
let tx = parseTransaction(t)
|
||||||
|
if tx.isContractCreation: txKind = TxKind.ContractCreation
|
||||||
if hasInternalTx(tx, blockNumber):
|
if hasInternalTx(tx, blockNumber):
|
||||||
let txTrace = requestInternalTx(t["hash"], tracer)
|
let txTrace = requestInternalTx(t["hash"], tracer)
|
||||||
for address, account in txTrace:
|
for address, account in txTrace:
|
||||||
updateAccount(address, account, blockNumber)
|
updateAccount(address, account, blockNumber)
|
||||||
premix.add account
|
premix.add account
|
||||||
|
if not tx.isContractCreation: txKind = TxKind.ContractCall
|
||||||
else:
|
else:
|
||||||
premix.requestAccount(blockNumber, tx.getRecipient)
|
premix.requestAccount(blockNumber, tx.getRecipient)
|
||||||
premix.requestAccount(blockNumber, tx.getSender)
|
premix.requestAccount(blockNumber, tx.getSender)
|
||||||
|
|
||||||
|
t["txKind"] = %($txKind)
|
||||||
|
|
||||||
proc requestPostState*(thisBlock: Block): JsonNode =
|
proc requestPostState*(thisBlock: Block): JsonNode =
|
||||||
let blockNumber = thisBlock.header.blockNumber
|
let blockNumber = thisBlock.header.blockNumber
|
||||||
var premix = newJArray()
|
var premix = newJArray()
|
||||||
|
|
Loading…
Reference in New Issue