diff --git a/contracts/bridge/test/vectors/.gitignore b/contracts/bridge/test/vectors/.gitignore index 339972c19..8b452dcc2 100644 --- a/contracts/bridge/test/vectors/.gitignore +++ b/contracts/bridge/test/vectors/.gitignore @@ -6,4 +6,3 @@ checkpoint-dn3.json weights-dn3.json checkpoints-dn3.json dn3-table.json -dn3-account.json diff --git a/contracts/bridge/test/vectors/dn3-account.json b/contracts/bridge/test/vectors/dn3-account.json new file mode 100644 index 000000000..f7612b572 --- /dev/null +++ b/contracts/bridge/test/vectors/dn3-account.json @@ -0,0 +1,15 @@ +{ + "chain_id": "igneum-devnet-3", + "state_root": "0x1fd551393d84009c398a9b9747cd296d0fdf1e31f85fa21c10426bc219694561", + "block_number": 28462, + "account": "0x085a7ca7338efaf797f3300fa7c64afa9d2c539b", + "account_nonce": "0", + "account_balance": "547807747463600000000", + "account_storage_root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "account_code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "account_proof": [ + "0xf90211a035a5663e80bde9c005c3f519613b5c3ff2add9bb9310908d4b6478ddfdd42b09a0628c3663581b1c12c36c5103080474c8f1503dc78e498e290e0ce309ee5dd580a048442259307de1a1ddc270914b19054e914a59f7ad1992c88fe9e5eeb91b91d3a0e72f8245f6bfe8fe9356e186352dc55a7f16e4eaf8bebfa8950625f0185ea699a0c8cf4b30c816ffbc8fc615de2e87ff7fe7ff384e22286b5cbb8aa29f126d2688a06819cfcddf29f3b1c72b4df680105c393217282d22439e204bfaf42eb5dfc3e0a0eafc7b7ab68e87b1574ce1c0a383b876ca03eb851e6d4074a6faa11583f8938fa0077c5575ade9c4657ef3094d44b493452279890fdd2028cbc46d7d7b260bfdf4a0f56e310ad31c53de3dd63db5823d99375f0ebed359d81efc13bc48e0fec734baa0a3a9b96516f395397fc8f86ada0e75c6b56fb56f26686b0de9b994828e7050a3a0f721a95427f32ec9105a8b6ae61ea87d68409f005eb4bb1bce08f8682de0f23aa08a09b8aba440e829c5b75680940ab07f7af7de4d5b784a7ebb4a9a55d5482686a072fed18995aede9d7cd457a87f58abb19b16d2794d7197e8808d049aa81fe4b1a058f1fadf00854cbe3d7b9fc0bdd2e38fe6c25bd944bc5b55f916c394282ba527a01e2b4f50116b9f85ef2b704b4e0858317961a715ff891e996eef10e4856c9d09a0588251a542d92fd21df94204ef0e7eb19224979273f6fa25a276ded6eca00b2080", + "0xf8b180808080a0420981c3d36f89ff245988aee9cf67b0852aa20aac3c0dd683b6441b8325ee6680a077d4821f911305b34d67a0f25372b5102b157ed8a3bcbcca278d663f41c2740ba0ca001aa786bbd28c50b735599b74b883185be98a9ea6118b519720fbed7720b9808080a04ea6a6815f895cbcf98aab72a2db87a197fd077953c650a9d74782dd1ca064df808080a025c2908da5906b49a3da3c07e84912f3428889a96f91da09057604c4bf189ab880", + "0xf872a0200f6ca86de6ec8bae815e435db88eb1e3ccc026af0d2049dc0299f37ac21622b84ff84d80891db25c13e886c5cc00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + ] +} diff --git a/docs/contracts/sepolia.json b/docs/contracts/sepolia.json index 4a23eed2a..d2034bc63 100644 --- a/docs/contracts/sepolia.json +++ b/docs/contracts/sepolia.json @@ -34,9 +34,22 @@ "source": "igneum.network/api/checkpoint?index=2127 (dn3_live_certificates), the bytes the chain carried; verified by eth_call before the send (true, 4833, 7164)" } ], - "interface": "IIgneumCertificateVerifier in contracts/bridge/src/IgneumCertificateVerifier.sol: chainId(), tableId(), verifyCertificate(uint64 index, bytes32 checkpoint, bytes bitmap, bytes signature) view returns (bool ok, uint256 signedWeight, uint256 totalWeight), submitCertificate(...), finalCheckpoint(uint64) view returns (bytes32), isFinal(bytes32) view returns (bool), verifyAccount(bytes32 stateRoot, address account, bytes[] proof) pure returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash)" + "interface": "IIgneumCertificateVerifier in contracts/bridge/src/IgneumCertificateVerifier.sol: chainId(), tableId(), verifyCertificate(uint64 index, bytes32 checkpoint, bytes bitmap, bytes signature) view returns (bool ok, uint256 signedWeight, uint256 totalWeight), submitCertificate(...), finalCheckpoint(uint64) view returns (bytes32), isFinal(bytes32) view returns (bool), verifyAccount(bytes32 stateRoot, address account, bytes[] proof) pure returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash)", + "account_proofs": [ + { + "account": "0x085a7ca7338efaf797f3300fa7c64afa9d2c539b", + "devnet3_block": 28462, + "state_root": "0x1fd551393d84009c398a9b9747cd296d0fdf1e31f85fa21c10426bc219694561", + "balance_wei": "547807747463600000000", + "balance_ign": "547.8077", + "proof_nodes": 3, + "source": "eth_getProof on the reference-apps lane's Devnet 3 reader node (igneum-light-reader on build-1, fork branch light-apps-node), the block's stateRoot equal to the proof's root", + "verified": "eth_call verifyAccount on the live contract 13:0x UTC: (true, nonce 0, 547807747463600000000, empty storage root, empty code hash); the suite's test_devnet3_account_balance_proven green on build-3 (10 of 10)", + "caveat": "the root is the chain's own but no certificate ties it to a checkpoint (gap 1 in docs/bridge/light-client-bridge.md)" + } + ] } }, "first_deploy_note": "A first creation at 0xD7dd375E14F92A4CE4782040325189e6d6E394b6 (tx 0x4db10565\u2026, block 11869633) ran out of gas at Foundry's Prague-spec estimate of 3,323,884; Sepolia runs Osaka pricing (EIP-7883 modexp), so the test EVM and the deploy now use osaka and the RPC's own estimate. That address holds no code.", - "tests": "contracts/bridge/test/Verifier.t.sol: 9 of 9 green on build-3 (Foundry, osaka), 12:3x UTC 8 October 2026; the live contract verified and recorded Devnet 3 checkpoint 2127 at 12:5x UTC" + "tests": "contracts/bridge/test/Verifier.t.sol: 10 of 10 green on build-3 (Foundry, osaka), 13:0x UTC 8 October 2026, including one Devnet 3 account under a real Devnet 3 state root" }