392 lines
14 KiB
JSON
392 lines
14 KiB
JSON
{
|
||
"meta": {
|
||
"rpc": "https://rpc.devnet.igneum.network",
|
||
"chain_id": 4465,
|
||
"network": "igneum-devnet-4",
|
||
"node_version": "igneumd 2.0.0",
|
||
"started": "2026-10-08T16:33:17.064Z",
|
||
"sender": "0x27C433aEec28f9Be4cCe17A8C645d65baDfCF891",
|
||
"funded": true,
|
||
"solc": "0.8.28+commit.7893614a.Emscripten.clang",
|
||
"finished": "2026-10-08T16:34:23.613Z"
|
||
},
|
||
"summary": {
|
||
"passed": 20,
|
||
"failed": 0,
|
||
"untested": 0
|
||
},
|
||
"deployed": {
|
||
"token": "0xb2495fd85f54d73d7a13059a8e61956b67ad7aed",
|
||
"probe": "0x3efc60794d574627eb5cb4eca77d96735dac4c42",
|
||
"contextTx": {
|
||
"hash": "0x3c1d2dffad903da6fc821598c7105e8683ea2000a885b440827c73d9dd204fcd",
|
||
"block": 768,
|
||
"coinbase": "0xc119093F38E3764Fdd86ea9635b7f616DEC6C3A6",
|
||
"prevrandao": "9cf17fa10c95c0a8fcb6332bf7cd9dac1415aea7fcf09ca4f13f410fbdc72024"
|
||
}
|
||
},
|
||
"rows": [
|
||
{
|
||
"id": "contracts.erc20.deploy",
|
||
"item": "Representative contracts",
|
||
"name": "an ERC-20 deploys (CREATE address as Ethereum computes it, code at the address)",
|
||
"verdict": "passed",
|
||
"detail": "at 0xb2495fd85f54d73d7a13059a8e61956b67ad7aed, block 739, gas 436751 of 639078 estimated",
|
||
"evidence": {
|
||
"tx": "0x8fd280cb68049a077b762d0152cace0428230d0757fbed7b05f09a8c24a7a5b9",
|
||
"address": "0xb2495fd85f54d73d7a13059a8e61956b67ad7aed",
|
||
"block": 739,
|
||
"gasUsed": 436751,
|
||
"estimated": 639078
|
||
},
|
||
"at": "2026-10-08T16:33:22.753Z"
|
||
},
|
||
{
|
||
"id": "contracts.erc20.transfer",
|
||
"item": "Representative contracts",
|
||
"name": "ERC-20 transfer: balances move, the Transfer log decodes, eth_call reads the new balance",
|
||
"verdict": "passed",
|
||
"detail": "5 CTT to 0x00000000, log decoded, balance read",
|
||
"evidence": {
|
||
"tx": "0xe787770a18a4da1288080e493a5ac3f02aba5f4f5d89302a409e0c2ffc7125fb",
|
||
"block": 742
|
||
},
|
||
"at": "2026-10-08T16:33:27.426Z"
|
||
},
|
||
{
|
||
"id": "contracts.erc20.approve",
|
||
"item": "Representative contracts",
|
||
"name": "ERC-20 approve then transferFrom by a spender (the sender approves itself as spender): allowance consumed, logs decode",
|
||
"verdict": "passed",
|
||
"detail": "allowance 3 then 1 after transferFrom of 2",
|
||
"evidence": {
|
||
"approve": "0xfc7a3a64b8de2d3b5c75c54036ac5e785df5e1d78cfd6ea9be7602e7ee815d24",
|
||
"transferFrom": "0x6c0a22dc3511c4a6836f0e9637f52fd3d282549eb5317e3e9078e6db652cef22"
|
||
},
|
||
"at": "2026-10-08T16:33:36.609Z"
|
||
},
|
||
{
|
||
"id": "contracts.probe.deploy",
|
||
"item": "Representative contracts",
|
||
"name": "a probe contract deploys (counter, block context reader, revert, out-of-gas loop, CREATE2)",
|
||
"verdict": "passed",
|
||
"detail": "at 0x3efc60794d574627eb5cb4eca77d96735dac4c42",
|
||
"evidence": {
|
||
"tx": "0x551c24030022ebca96ba6d44c6d8d50637cba25be5c7c13839e01eadc6938e15",
|
||
"address": "0x3efc60794d574627eb5cb4eca77d96735dac4c42",
|
||
"block": 751
|
||
},
|
||
"at": "2026-10-08T16:33:41.134Z"
|
||
},
|
||
{
|
||
"id": "contracts.counter",
|
||
"item": "Representative contracts",
|
||
"name": "a counter increments twice and reads 2 (state persists across chain blocks)",
|
||
"verdict": "passed",
|
||
"detail": "count 2 after blocks 753 and 755",
|
||
"evidence": {
|
||
"first": "0xfaf855760dad78fd488432f54db35ecf7baf089408abb37309d77089a99b75a1",
|
||
"second": "0x97ca41517b1ee4cff94b854308a6ab474be1d6f87eff582837caf89b58fe19c8"
|
||
},
|
||
"at": "2026-10-08T16:33:50.383Z"
|
||
},
|
||
{
|
||
"id": "fees.quotes",
|
||
"item": "Wallet fee estimation",
|
||
"name": "eth_gasPrice, eth_maxPriorityFeePerGas and eth_feeHistory answer in Ethereum's shapes",
|
||
"verdict": "passed",
|
||
"detail": "gasPrice 196.130804856 gwei, priority 1 gwei, feeHistory 5 base fees",
|
||
"evidence": {
|
||
"gasPrice": "0x2daa4e9478",
|
||
"maxPriorityFeePerGas": "0x3b9aca00",
|
||
"feeHistory": {
|
||
"baseFeePerGas": [
|
||
"0x174876e800",
|
||
"0x174876e800",
|
||
"0x174876e800",
|
||
"0x174876e800",
|
||
"0x174876e800"
|
||
],
|
||
"gasUsedRatio": [
|
||
0,
|
||
0.0014490333333333333,
|
||
0,
|
||
0.0008790333333333334
|
||
],
|
||
"igneum": {
|
||
"provingBaseFeePerGas": [
|
||
"0x9184e72a000",
|
||
"0x9184e72a000",
|
||
"0x9184e72a000",
|
||
"0x9184e72a000"
|
||
]
|
||
},
|
||
"oldestBlock": "0x2f0",
|
||
"reward": [
|
||
[
|
||
"0x3b9aca00"
|
||
],
|
||
[
|
||
"0x3b9aca00"
|
||
],
|
||
[
|
||
"0x3b9aca00"
|
||
],
|
||
[
|
||
"0x3b9aca00"
|
||
]
|
||
]
|
||
}
|
||
},
|
||
"at": "2026-10-08T16:33:50.543Z"
|
||
},
|
||
{
|
||
"id": "fees.estimate.transfer",
|
||
"item": "Wallet fee estimation",
|
||
"name": "a plain transfer: eth_estimateGas against the receipt's gasUsed (the quote folds proving gas; both above Ethereum's 21,000)",
|
||
"verdict": "passed",
|
||
"detail": "estimated 59650, used 21000 (35% of the estimate); Ethereum's figure is 21,000",
|
||
"evidence": {
|
||
"tx": "0x99c4dc1ae8d2f32bcc62ed78ff9c829a6281065ba0c9eaf43ffa574c48b1cad0",
|
||
"estimated": 59650,
|
||
"gasUsed": 21000,
|
||
"ethereum": 21000
|
||
},
|
||
"at": "2026-10-08T16:33:55.347Z"
|
||
},
|
||
{
|
||
"id": "fees.estimate.call",
|
||
"item": "Wallet fee estimation",
|
||
"name": "a contract call: eth_estimateGas against gasUsed (a wallet that quotes from the node is covered)",
|
||
"verdict": "passed",
|
||
"detail": "estimated 134366, used 26371",
|
||
"evidence": {
|
||
"tx": "0xeb8bafa3a979a9ccd5c21ca7df91f5eb49c09b926cfa27981fcd38b796b7bee4",
|
||
"estimated": 134366,
|
||
"gasUsed": 26371
|
||
},
|
||
"at": "2026-10-08T16:34:00.085Z"
|
||
},
|
||
{
|
||
"id": "fees.local21000",
|
||
"item": "Wallet fee estimation",
|
||
"name": "the documented difference: a transfer sent with a local 21,000 gas limit (Ethereum's intrinsic cost) instead of the node's quote",
|
||
"verdict": "passed",
|
||
"detail": "the node accepted it and it succeeded with gasUsed 21000: a wallet with a hard-coded 21,000 works",
|
||
"evidence": {
|
||
"sent": true,
|
||
"hash": "0x538fdf72a8fef37dc1c0024bcfe61028ed74b02c504e9df26978f4adb907b121",
|
||
"status": "success",
|
||
"gasUsed": 21000
|
||
},
|
||
"at": "2026-10-08T16:34:04.657Z"
|
||
},
|
||
{
|
||
"id": "failed.revert",
|
||
"item": "Failed transactions",
|
||
"name": "a revert with a reason: eth_call returns the reason, the sent transaction has status 0, gas is charged, the nonce advances",
|
||
"verdict": "passed",
|
||
"detail": "eth_call answers code 3 \"execution reverted\" with Error(string) data decoding to \"compat says no\"; the sent transaction: status 0, gasUsed 22292 of 200000, nonce 23 to 24",
|
||
"evidence": {
|
||
"tx": "0xfcdf8d24eb414154d24cf3e0c11d5d732ba3f612e219d8adc316ec6323a06a1e",
|
||
"gasUsed": 22292,
|
||
"block": 762,
|
||
"call_error_code": 3,
|
||
"call_error_message": "execution reverted",
|
||
"revert_data": "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000e636f6d7061742073617973206e6f000000000000000000000000000000000000"
|
||
},
|
||
"at": "2026-10-08T16:34:09.064Z"
|
||
},
|
||
{
|
||
"id": "failed.outofgas",
|
||
"item": "Failed transactions",
|
||
"name": "an out-of-gas call: status 0 and the whole limit charged",
|
||
"verdict": "passed",
|
||
"detail": "status 0, gasUsed 150000 of the 150000 limit",
|
||
"evidence": {
|
||
"tx": "0xb3986b45642c28dd029dc34714878e42c025a0bd6349609900b7cef120f7a1f6",
|
||
"gasUsed": 150000,
|
||
"limit": 150000
|
||
},
|
||
"at": "2026-10-08T16:34:13.537Z"
|
||
},
|
||
{
|
||
"id": "receipts.fields",
|
||
"item": "Receipts",
|
||
"name": "a receipt carries every Ethereum field, logsBloom recomputes from its logs, contractAddress is set on creation",
|
||
"verdict": "passed",
|
||
"detail": "15 fields, bloom recomputed over 1 log(s), contractAddress 0xb2495fd8",
|
||
"evidence": {
|
||
"tx": "0x8fd280cb68049a077b762d0152cace0428230d0757fbed7b05f09a8c24a7a5b9",
|
||
"fields": [
|
||
"blockHash",
|
||
"blockNumber",
|
||
"contractAddress",
|
||
"cumulativeGasUsed",
|
||
"effectiveGasPrice",
|
||
"from",
|
||
"gasUsed",
|
||
"igneum",
|
||
"logs",
|
||
"logsBloom",
|
||
"status",
|
||
"to",
|
||
"transactionHash",
|
||
"transactionIndex",
|
||
"type"
|
||
]
|
||
},
|
||
"at": "2026-10-08T16:34:13.578Z"
|
||
},
|
||
{
|
||
"id": "receipts.root",
|
||
"item": "Receipts",
|
||
"name": "the block's receipts rebuild its receipts trie root (Ethereum's layout, the node's encoding) equal to the header's receiptsRoot",
|
||
"verdict": "passed",
|
||
"detail": "block 742, 1 receipts, root 0xa28061003c4c",
|
||
"evidence": {
|
||
"block": 742,
|
||
"receipts": 1,
|
||
"receiptsRoot": "0xa28061003c4cfa70006e203524ededd4668753d432bef4c657c1ede124d6ac55"
|
||
},
|
||
"at": "2026-10-08T16:34:13.651Z"
|
||
},
|
||
{
|
||
"id": "indexing.logs",
|
||
"item": "Indexing",
|
||
"name": "eth_getLogs by address, by topic and by block range returns the receipts' logs with consistent logIndex and transactionIndex",
|
||
"verdict": "passed",
|
||
"detail": "4 logs by address, 3 Transfer logs by topic, each found in its receipt",
|
||
"evidence": {
|
||
"byAddress": 4,
|
||
"byTopic": 3,
|
||
"fromBlock": 739
|
||
},
|
||
"at": "2026-10-08T16:34:13.880Z"
|
||
},
|
||
{
|
||
"id": "indexing.block",
|
||
"item": "Indexing",
|
||
"name": "eth_getBlockByNumber with full transactions, eth_getBlockReceipts and eth_getTransactionByHash agree on indices and hashes",
|
||
"verdict": "passed",
|
||
"detail": "block 742: 1 transactions, indices 0 to 0 continuous",
|
||
"evidence": {
|
||
"block": 742,
|
||
"count": 1
|
||
},
|
||
"at": "2026-10-08T16:34:14.059Z"
|
||
},
|
||
{
|
||
"id": "assumptions.context",
|
||
"item": "Application assumptions",
|
||
"name": "block.number, timestamp, chainid, basefee and blockhash(number-1) read from a contract match the block the call executed in",
|
||
"verdict": "passed",
|
||
"detail": "block 768: number, timestamp, chainid 4465, basefee, blockhash(n-1) = parentHash, msg.sender and tx.origin all match",
|
||
"evidence": {
|
||
"tx": "0x3c1d2dffad903da6fc821598c7105e8683ea2000a885b440827c73d9dd204fcd",
|
||
"block": 768
|
||
},
|
||
"at": "2026-10-08T16:34:18.585Z"
|
||
},
|
||
{
|
||
"id": "assumptions.create2",
|
||
"item": "Application assumptions",
|
||
"name": "CREATE2 lands at the address Ethereum computes (keccak(0xff, deployer, salt, keccak(initcode)))",
|
||
"verdict": "passed",
|
||
"detail": "child at 0xE63036B0fEC0d01321Ef4DA62C084d1Ec2eA47be",
|
||
"evidence": {
|
||
"tx": "0x11cd98733996949be674b9669a3d459ba7bbeda8345fa2879ecb9fe36b9aa80c",
|
||
"address": "0xE63036B0fEC0d01321Ef4DA62C084d1Ec2eA47be"
|
||
},
|
||
"at": "2026-10-08T16:34:23.161Z"
|
||
},
|
||
{
|
||
"id": "difference.coinbase",
|
||
"item": "Differences: block context",
|
||
"name": "block.coinbase is the miner of the DAG block that first included the transaction, not one miner per chain block (measured: coinbase against the block's igneum.mergeset)",
|
||
"verdict": "passed",
|
||
"detail": "coinbase 0xc119093F = the including block's miner 0xc119093f; the chain block merged 2 block(s) with 1 distinct miner(s), chain block miner 0xc119093f",
|
||
"evidence": {
|
||
"tx": "0x3c1d2dffad903da6fc821598c7105e8683ea2000a885b440827c73d9dd204fcd",
|
||
"coinbase": "0xc119093F38E3764Fdd86ea9635b7f616DEC6C3A6",
|
||
"includingMiner": "0xc119093f38e3764fdd86ea9635b7f616dec6c3a6",
|
||
"mergesetMiners": [
|
||
"0xc119093f38e3764fdd86ea9635b7f616dec6c3a6",
|
||
"0xc119093f38e3764fdd86ea9635b7f616dec6c3a6"
|
||
],
|
||
"chainBlockMiner": "0xc119093f38e3764fdd86ea9635b7f616dec6c3a6"
|
||
},
|
||
"at": "2026-10-08T16:34:23.244Z"
|
||
},
|
||
{
|
||
"id": "difference.randomness",
|
||
"item": "Differences: randomness",
|
||
"name": "block.prevrandao: its value is derived from the chain's epoch seed (not Ethereum's beacon RANDAO); measured across consecutive blocks, and from a contract when a sender is funded",
|
||
"verdict": "passed",
|
||
"detail": "blocks 767 to 770: 1 distinct epoch seed(s), 4 distinct mixHash value(s) in the headers; the source is the chain's epoch seed, which holds for an epoch, so prevrandao is not fresh per block and must not seed a lottery; a contract reading it twice in one call got the same value, and at block 768 it read 0x9cf17fa10c95…",
|
||
"evidence": {
|
||
"blocks": [
|
||
{
|
||
"number": 767,
|
||
"mixHash": "0xe5baec105ee8d299d423ae632944b4b185d4d885e57088b829443202c36d82b5",
|
||
"epochSeed": "0x7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e"
|
||
},
|
||
{
|
||
"number": 768,
|
||
"mixHash": "0x9cf17fa10c95c0a8fcb6332bf7cd9dac1415aea7fcf09ca4f13f410fbdc72024",
|
||
"epochSeed": "0x7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e"
|
||
},
|
||
{
|
||
"number": 769,
|
||
"mixHash": "0xe39ab8de805c6b8c8ccad7b078a788b6f2b79d7b25e19f0211951a1aba5e3c42",
|
||
"epochSeed": "0x7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e"
|
||
},
|
||
{
|
||
"number": 770,
|
||
"mixHash": "0xc749632e2ede6ff39f5e4ac3549a59d701509803d011311a9b1da9e4c363eebd",
|
||
"epochSeed": "0x7c36b83374a673e990213be462509dcb08bcfc85144306aa9517cf3ad66faf6e"
|
||
}
|
||
],
|
||
"contract": {
|
||
"hash": "0x3c1d2dffad903da6fc821598c7105e8683ea2000a885b440827c73d9dd204fcd",
|
||
"block": 768,
|
||
"coinbase": "0xc119093F38E3764Fdd86ea9635b7f616DEC6C3A6",
|
||
"prevrandao": "9cf17fa10c95c0a8fcb6332bf7cd9dac1415aea7fcf09ca4f13f410fbdc72024"
|
||
}
|
||
},
|
||
"at": "2026-10-08T16:34:23.576Z"
|
||
},
|
||
{
|
||
"id": "difference.fees",
|
||
"item": "Differences: two-dimensional fees",
|
||
"name": "a receipt carries pgasUsed, provingBaseFeePerGas, burnedProvingFee and burnedExecutionBaseFee; effectiveGasPrice covers both dimensions",
|
||
"verdict": "passed",
|
||
"detail": "gasUsed 51375, pgasUsed 1968, proving base fee 10000 gwei per pgas; paid 5188875000000000 wei, of which proving burn 19680000000000000, execution burn 5137500000000000, tip 41100000000000 (parts sum differs from gasUsed × effectiveGasPrice)",
|
||
"evidence": {
|
||
"tx": "0xe787770a18a4da1288080e493a5ac3f02aba5f4f5d89302a409e0c2ffc7125fb",
|
||
"gasUsed": 51375,
|
||
"pgasUsed": 1968,
|
||
"effectiveGasPrice": "0x178411b200",
|
||
"igneum": {
|
||
"burnedExecutionBaseFee": "0x1240876e889800",
|
||
"burnedProvingFee": "0x45eadb112e0000",
|
||
"developerShares": [
|
||
{
|
||
"payee": null,
|
||
"wei": "0x95855b99e00"
|
||
}
|
||
],
|
||
"includingBlock": "0x9eb90f5ec3bf0ef4ddeb220137e756f63ddf74a1deddfffe9fbc44f473bea88b",
|
||
"includingMiner": "0x53fe98022c2ac26d5d721457fb1c374b4d56144b",
|
||
"minerTip": "0x256156e67800",
|
||
"overBudget": false,
|
||
"pgasAborted": false,
|
||
"pgasUsed": "0x7b0",
|
||
"provingBaseFeePerGas": "0x9184e72a000"
|
||
},
|
||
"parts_equal_paid": false
|
||
},
|
||
"at": "2026-10-08T16:34:23.613Z"
|
||
}
|
||
]
|
||
}
|