@aztec/stdlib 6.0.0-nightly.20260812 → 6.0.0-nightly.20260821

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dest/abi/abi.d.ts +4 -3
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +5 -1
  4. package/dest/abi/contract_artifact.d.ts +7 -2
  5. package/dest/abi/contract_artifact.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.js +18 -19
  7. package/dest/avm/avm.d.ts +3 -2
  8. package/dest/avm/avm.d.ts.map +1 -1
  9. package/dest/avm/avm.js +9 -3
  10. package/dest/avm/avm_proving_request.d.ts +70 -70
  11. package/dest/block/l2_block.d.ts +1 -2
  12. package/dest/block/l2_block.d.ts.map +1 -1
  13. package/dest/block/l2_block.js +2 -3
  14. package/dest/block/l2_block_source.d.ts +3 -6
  15. package/dest/block/l2_block_source.d.ts.map +1 -1
  16. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +11 -20
  17. package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -1
  18. package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +12 -116
  19. package/dest/checkpoint/checkpoint_data.d.ts +14 -2
  20. package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
  21. package/dest/checkpoint/checkpoint_data.js +2 -1
  22. package/dest/checkpoint/index.d.ts +2 -1
  23. package/dest/checkpoint/index.d.ts.map +1 -1
  24. package/dest/checkpoint/index.js +1 -0
  25. package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.d.ts +21 -0
  26. package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.d.ts.map +1 -0
  27. package/dest/checkpoint/previous_checkpoint_inbox_rolling_hash.js +34 -0
  28. package/dest/checkpoint/simulation_overrides.d.ts +2 -2
  29. package/dest/checkpoint/simulation_overrides.d.ts.map +1 -1
  30. package/dest/checkpoint/simulation_overrides.js +11 -8
  31. package/dest/config/network-consensus-config.d.ts +4 -3
  32. package/dest/config/network-consensus-config.d.ts.map +1 -1
  33. package/dest/config/network-consensus-config.js +9 -4
  34. package/dest/config/node-rpc-config.d.ts +13 -1
  35. package/dest/config/node-rpc-config.d.ts.map +1 -1
  36. package/dest/config/node-rpc-config.js +34 -1
  37. package/dest/deserialization/index.d.ts +17 -17
  38. package/dest/deserialization/index.d.ts.map +1 -1
  39. package/dest/deserialization/index.js +18 -18
  40. package/dest/gas/gas_settings.d.ts +17 -5
  41. package/dest/gas/gas_settings.d.ts.map +1 -1
  42. package/dest/gas/gas_settings.js +4 -4
  43. package/dest/gas/tx_gas_limits.d.ts +3 -4
  44. package/dest/gas/tx_gas_limits.d.ts.map +1 -1
  45. package/dest/gas/tx_gas_limits.js +4 -5
  46. package/dest/interfaces/archiver.d.ts +2 -2
  47. package/dest/interfaces/archiver.d.ts.map +1 -1
  48. package/dest/interfaces/archiver.js +32 -5
  49. package/dest/interfaces/aztec-node-admin.d.ts +2 -1
  50. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  51. package/dest/interfaces/aztec-node.d.ts +22 -4
  52. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  53. package/dest/interfaces/aztec-node.js +11 -9
  54. package/dest/interfaces/block-builder.d.ts +11 -2
  55. package/dest/interfaces/block-builder.d.ts.map +1 -1
  56. package/dest/interfaces/configs.d.ts +7 -1
  57. package/dest/interfaces/configs.d.ts.map +1 -1
  58. package/dest/interfaces/configs.js +2 -1
  59. package/dest/interfaces/p2p.d.ts +18 -1
  60. package/dest/interfaces/p2p.d.ts.map +1 -1
  61. package/dest/interfaces/p2p.js +8 -0
  62. package/dest/interfaces/proving-job.d.ts +17 -42
  63. package/dest/interfaces/proving-job.d.ts.map +1 -1
  64. package/dest/interfaces/proving-job.js +16 -47
  65. package/dest/interfaces/server_circuit_prover.d.ts +8 -15
  66. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  67. package/dest/interfaces/validator.d.ts +7 -7
  68. package/dest/interfaces/validator.d.ts.map +1 -1
  69. package/dest/messaging/append_l1_to_l2_messages.d.ts +5 -5
  70. package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -1
  71. package/dest/messaging/append_l1_to_l2_messages.js +4 -8
  72. package/dest/messaging/inbox_bucket.d.ts +77 -0
  73. package/dest/messaging/inbox_bucket.d.ts.map +1 -0
  74. package/dest/messaging/inbox_bucket.js +73 -0
  75. package/dest/messaging/inbox_consumption.d.ts +55 -0
  76. package/dest/messaging/inbox_consumption.d.ts.map +1 -0
  77. package/dest/messaging/inbox_consumption.js +53 -0
  78. package/dest/messaging/inbox_rolling_hash.d.ts +16 -0
  79. package/dest/messaging/inbox_rolling_hash.d.ts.map +1 -0
  80. package/dest/messaging/inbox_rolling_hash.js +23 -0
  81. package/dest/messaging/index.d.ts +6 -3
  82. package/dest/messaging/index.d.ts.map +1 -1
  83. package/dest/messaging/index.js +5 -2
  84. package/dest/messaging/l1_to_l2_message_bundle.d.ts +31 -0
  85. package/dest/messaging/l1_to_l2_message_bundle.d.ts.map +1 -0
  86. package/dest/messaging/l1_to_l2_message_bundle.js +51 -0
  87. package/dest/messaging/l1_to_l2_message_source.d.ts +44 -10
  88. package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
  89. package/dest/messaging/l1_to_l2_message_sponge.d.ts +40 -0
  90. package/dest/messaging/l1_to_l2_message_sponge.d.ts.map +1 -0
  91. package/dest/messaging/l1_to_l2_message_sponge.js +56 -0
  92. package/dest/noir/index.d.ts +3 -3
  93. package/dest/noir/index.d.ts.map +1 -1
  94. package/dest/p2p/block_proposal.d.ts +24 -9
  95. package/dest/p2p/block_proposal.d.ts.map +1 -1
  96. package/dest/p2p/block_proposal.js +42 -20
  97. package/dest/p2p/checkpoint_attestation.d.ts +1 -1
  98. package/dest/p2p/checkpoint_proposal.d.ts +13 -3
  99. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  100. package/dest/p2p/checkpoint_proposal.js +26 -8
  101. package/dest/p2p/consensus_payload.d.ts +1 -1
  102. package/dest/p2p/index.d.ts +2 -1
  103. package/dest/p2p/index.d.ts.map +1 -1
  104. package/dest/p2p/index.js +1 -0
  105. package/dest/p2p/validated_proposal.d.ts +35 -0
  106. package/dest/p2p/validated_proposal.d.ts.map +1 -0
  107. package/dest/p2p/validated_proposal.js +17 -0
  108. package/dest/p2p/wire_compat_fixtures.d.ts +7 -0
  109. package/dest/p2p/wire_compat_fixtures.d.ts.map +1 -0
  110. package/dest/p2p/wire_compat_fixtures.js +14 -0
  111. package/dest/parity/inbox_parity_private_inputs.d.ts +61 -0
  112. package/dest/parity/inbox_parity_private_inputs.d.ts.map +1 -0
  113. package/dest/parity/inbox_parity_private_inputs.js +79 -0
  114. package/dest/parity/index.d.ts +2 -3
  115. package/dest/parity/index.d.ts.map +1 -1
  116. package/dest/parity/index.js +1 -2
  117. package/dest/parity/parity_public_inputs.d.ts +15 -14
  118. package/dest/parity/parity_public_inputs.d.ts.map +1 -1
  119. package/dest/parity/parity_public_inputs.js +13 -15
  120. package/dest/proofs/proving_request_type.d.ts +11 -14
  121. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  122. package/dest/proofs/proving_request_type.js +10 -13
  123. package/dest/rollup/block_constant_data.d.ts +8 -8
  124. package/dest/rollup/block_constant_data.js +4 -4
  125. package/dest/rollup/block_rollup_public_inputs.d.ts +18 -6
  126. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
  127. package/dest/rollup/block_rollup_public_inputs.js +14 -7
  128. package/dest/rollup/block_root_rollup_private_inputs.d.ts +109 -113
  129. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  130. package/dest/rollup/block_root_rollup_private_inputs.js +79 -130
  131. package/dest/rollup/checkpoint_header.d.ts +14 -6
  132. package/dest/rollup/checkpoint_header.d.ts.map +1 -1
  133. package/dest/rollup/checkpoint_header.js +18 -14
  134. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +22 -2
  135. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
  136. package/dest/rollup/checkpoint_rollup_public_inputs.js +14 -3
  137. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +27 -6
  138. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
  139. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +17 -4
  140. package/dest/rollup/root_rollup_public_inputs.d.ts +10 -2
  141. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
  142. package/dest/rollup/root_rollup_public_inputs.js +9 -3
  143. package/dest/stats/stats.d.ts +2 -2
  144. package/dest/stats/stats.d.ts.map +1 -1
  145. package/dest/tests/factories.d.ts +7 -7
  146. package/dest/tests/factories.d.ts.map +1 -1
  147. package/dest/tests/factories.js +26 -22
  148. package/dest/tests/fixtures.d.ts +1 -1
  149. package/dest/tests/fixtures.d.ts.map +1 -1
  150. package/dest/tests/fixtures.js +2 -0
  151. package/dest/tests/mocks.d.ts +4 -2
  152. package/dest/tests/mocks.d.ts.map +1 -1
  153. package/dest/tests/mocks.js +4 -7
  154. package/dest/tx/state_reference.d.ts +5 -2
  155. package/dest/tx/state_reference.d.ts.map +1 -1
  156. package/dest/tx/state_reference.js +5 -5
  157. package/package.json +8 -8
  158. package/src/abi/abi.ts +7 -2
  159. package/src/abi/contract_artifact.ts +20 -23
  160. package/src/avm/avm.ts +11 -1
  161. package/src/block/l2_block.ts +2 -3
  162. package/src/block/l2_block_source.ts +2 -5
  163. package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +17 -143
  164. package/src/checkpoint/checkpoint_data.ts +14 -1
  165. package/src/checkpoint/index.ts +1 -0
  166. package/src/checkpoint/previous_checkpoint_inbox_rolling_hash.ts +46 -0
  167. package/src/checkpoint/simulation_overrides.ts +11 -8
  168. package/src/config/network-consensus-config.ts +17 -4
  169. package/src/config/node-rpc-config.ts +51 -1
  170. package/src/deserialization/index.ts +18 -18
  171. package/src/gas/README.md +4 -3
  172. package/src/gas/gas_settings.ts +7 -3
  173. package/src/gas/tx_gas_limits.ts +4 -12
  174. package/src/interfaces/archiver.ts +19 -2
  175. package/src/interfaces/aztec-node.ts +33 -12
  176. package/src/interfaces/block-builder.ts +10 -1
  177. package/src/interfaces/configs.ts +6 -0
  178. package/src/interfaces/p2p.ts +21 -0
  179. package/src/interfaces/proving-job.ts +19 -70
  180. package/src/interfaces/server_circuit_prover.ts +13 -37
  181. package/src/interfaces/validator.ts +6 -5
  182. package/src/kernel/private_kernel_reset_dimensions.ts +1 -1
  183. package/src/messaging/append_l1_to_l2_messages.ts +5 -13
  184. package/src/messaging/inbox_bucket.ts +125 -0
  185. package/src/messaging/inbox_consumption.ts +74 -0
  186. package/src/messaging/inbox_rolling_hash.ts +24 -0
  187. package/src/messaging/index.ts +5 -2
  188. package/src/messaging/l1_to_l2_message_bundle.ts +65 -0
  189. package/src/messaging/l1_to_l2_message_source.ts +48 -10
  190. package/src/messaging/l1_to_l2_message_sponge.ts +69 -0
  191. package/src/noir/index.ts +1 -2
  192. package/src/p2p/block_proposal.ts +41 -28
  193. package/src/p2p/checkpoint_proposal.ts +31 -6
  194. package/src/p2p/index.ts +1 -0
  195. package/src/p2p/validated_proposal.ts +43 -0
  196. package/src/p2p/wire_compat_fixtures.ts +23 -0
  197. package/src/parity/inbox_parity_private_inputs.ts +116 -0
  198. package/src/parity/index.ts +1 -2
  199. package/src/parity/parity_public_inputs.ts +12 -14
  200. package/src/proofs/proving_request_type.ts +2 -5
  201. package/src/rollup/block_constant_data.ts +4 -4
  202. package/src/rollup/block_rollup_public_inputs.ts +14 -5
  203. package/src/rollup/block_root_rollup_private_inputs.ts +117 -153
  204. package/src/rollup/checkpoint_header.ts +17 -13
  205. package/src/rollup/checkpoint_rollup_public_inputs.ts +15 -0
  206. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +16 -3
  207. package/src/rollup/root_rollup_public_inputs.ts +10 -0
  208. package/src/stats/stats.ts +4 -5
  209. package/src/tests/factories.ts +38 -32
  210. package/src/tests/fixtures.ts +3 -0
  211. package/src/tests/mocks.ts +6 -7
  212. package/src/tx/state_reference.ts +5 -12
  213. package/dest/messaging/in_hash.d.ts +0 -6
  214. package/dest/messaging/in_hash.d.ts.map +0 -1
  215. package/dest/messaging/in_hash.js +0 -10
  216. package/dest/messaging/inbox_leaf.d.ts +0 -25
  217. package/dest/messaging/inbox_leaf.d.ts.map +0 -1
  218. package/dest/messaging/inbox_leaf.js +0 -42
  219. package/dest/parity/parity_base_private_inputs.d.ts +0 -39
  220. package/dest/parity/parity_base_private_inputs.d.ts.map +0 -1
  221. package/dest/parity/parity_base_private_inputs.js +0 -51
  222. package/dest/parity/parity_root_private_inputs.d.ts +0 -39
  223. package/dest/parity/parity_root_private_inputs.d.ts.map +0 -1
  224. package/dest/parity/parity_root_private_inputs.js +0 -46
  225. package/src/messaging/in_hash.ts +0 -12
  226. package/src/messaging/inbox_leaf.ts +0 -44
  227. package/src/parity/parity_base_private_inputs.ts +0 -71
  228. package/src/parity/parity_root_private_inputs.ts +0 -64
@@ -72,7 +72,7 @@ export declare class CheckpointAttestation extends Gossipable {
72
72
  lastArchive: `0x${string}`;
73
73
  blockHeadersHash: `0x${string}`;
74
74
  blobsHash: `0x${string}`;
75
- inHash: `0x${string}`;
75
+ inboxRollingHash: `0x${string}`;
76
76
  epochOutHash: `0x${string}`;
77
77
  slotNumber: SlotNumber;
78
78
  timestamp: bigint;
@@ -7,6 +7,7 @@ import { BufferReader } from '@aztec/foundation/serialize';
7
7
  import type { TypedDataDefinition } from 'viem';
8
8
  import type { L2BlockInfo } from '../block/l2_block_info.js';
9
9
  import { type SigningContext } from '../ha-signing/index.js';
10
+ import { InboxBucketRef } from '../messaging/inbox_bucket.js';
10
11
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
11
12
  import { BlockHeader } from '../tx/block_header.js';
12
13
  import { TxHash } from '../tx/index.js';
@@ -47,6 +48,11 @@ export type CheckpointLastBlock = Omit<CheckpointLastBlockData, 'txs'> & {
47
48
  signature: Signature;
48
49
  /** The signed transactions in the last block (optional, for DA guarantees) */
49
50
  signedTxs?: SignedTxs;
51
+ /**
52
+ * Reference to the Inbox bucket the last block proposes to consume. When set, its rolling hash must equal the
53
+ * checkpoint header's `inboxRollingHash` (enforced at construction).
54
+ */
55
+ bucketRef?: InboxBucketRef;
50
56
  };
51
57
  /**
52
58
  * A checkpoint proposal is created by the leader of the chain for the last block in a checkpoint.
@@ -86,7 +92,6 @@ export declare class CheckpointProposal extends Gossipable implements Signable {
86
92
  get slotNumber(): SlotNumber;
87
93
  /**
88
94
  * Extract a BlockProposal from the last block info.
89
- * Uses inHash from checkpointHeader.contentCommitment.inHash
90
95
  */
91
96
  getBlockProposal(): BlockProposal | undefined;
92
97
  toBlockInfo(): Omit<L2BlockInfo, 'blockNumber'>;
@@ -132,7 +137,7 @@ export declare class CheckpointProposal extends Gossipable implements Signable {
132
137
  lastArchive: `0x${string}`;
133
138
  blockHeadersHash: `0x${string}`;
134
139
  blobsHash: `0x${string}`;
135
- inHash: `0x${string}`;
140
+ inboxRollingHash: `0x${string}`;
136
141
  epochOutHash: `0x${string}`;
137
142
  slotNumber: SlotNumber;
138
143
  timestamp: bigint;
@@ -177,6 +182,11 @@ export declare class CheckpointProposal extends Gossipable implements Signable {
177
182
  indexWithinCheckpoint: IndexWithinCheckpoint;
178
183
  txHashes: `0x${string}`[];
179
184
  signature: `0x${string}`;
185
+ bucketRef: {
186
+ bucketSeq: string;
187
+ bucketTimestamp: string;
188
+ inboxRollingHash: `0x${string}`;
189
+ } | undefined;
180
190
  } | undefined;
181
191
  };
182
192
  /**
@@ -191,4 +201,4 @@ export declare class CheckpointProposal extends Gossipable implements Signable {
191
201
  * This type makes it clear that lastBlock and getBlockProposal() are not available.
192
202
  */
193
203
  export type CheckpointProposalCore = Omit<CheckpointProposal, 'lastBlock' | 'getBlockProposal' | 'toCore'>;
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9jaGVja3BvaW50X3Byb3Bvc2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDWCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQVksS0FBSyxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFD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
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9wcm9wb3NhbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9jaGVja3BvaW50X3Byb3Bvc2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLFVBQVUsRUFDWCxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBNEMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRyxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQVksS0FBSyxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_proposal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/checkpoint_proposal.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { Signature } from '@aztec/foundation/eth-signature';
5
5
  import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
6
6
  import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
7
7
  import { DutyType } from '../ha-signing/index.js';
8
+ import { InboxBucketRef } from '../messaging/inbox_bucket.js';
8
9
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
9
10
  import { BlockHeader } from '../tx/block_header.js';
10
11
  import { TxHash } from '../tx/index.js';
@@ -30,9 +31,10 @@ import { TopicType } from './topic_type.js';
30
31
  cachedSender;
31
32
  constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */ signature, /** The signing domain (chainId + rollupAddress) the signature is bound to */ signatureContext, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
32
33
  super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.feeAssetPriceModifier = feeAssetPriceModifier, this.signature = signature, this.signatureContext = signatureContext, this.lastBlock = lastBlock, this.primaryType = 'CheckpointProposal', this.cachedSender = undefined;
33
- // Check that last block properties match those of the checkpoint.
34
- if (lastBlock && 'inHash' in lastBlock && !lastBlock.inHash.equals(checkpointHeader.inHash)) {
35
- throw new Error(`CheckpointProposal lastBlock inHash ${lastBlock.inHash} does not match checkpoint inHash ${checkpointHeader.inHash}`);
34
+ // Check that last block properties match those of the checkpoint. The last block's bucket reference
35
+ // commits to the same rolling hash as the checkpoint header. Only enforced when the reference is set.
36
+ if (lastBlock?.bucketRef && !lastBlock.bucketRef.inboxRollingHash.equals(checkpointHeader.inboxRollingHash)) {
37
+ throw new Error(`CheckpointProposal lastBlock bucketRef rolling hash ${lastBlock.bucketRef.inboxRollingHash} does not match checkpoint inboxRollingHash ${checkpointHeader.inboxRollingHash}`);
36
38
  }
37
39
  if (lastBlock && 'archiveRoot' in lastBlock && !lastBlock.archiveRoot.equals(archive)) {
38
40
  throw new Error(`CheckpointProposal lastBlock archive ${lastBlock.archiveRoot} does not match checkpoint archive ${archive}`);
@@ -49,12 +51,11 @@ import { TopicType } from './topic_type.js';
49
51
  }
50
52
  /**
51
53
  * Extract a BlockProposal from the last block info.
52
- * Uses inHash from checkpointHeader.contentCommitment.inHash
53
54
  */ getBlockProposal() {
54
55
  if (!this.lastBlock) {
55
56
  return undefined;
56
57
  }
57
- return new BlockProposal(this.lastBlock.blockHeader, this.lastBlock.indexWithinCheckpoint, this.checkpointHeader.inHash, this.archive, this.lastBlock.txHashes, this.lastBlock.signature, this.signatureContext, this.lastBlock.signedTxs);
58
+ return new BlockProposal(this.lastBlock.blockHeader, this.lastBlock.indexWithinCheckpoint, this.archive, this.lastBlock.txHashes, this.lastBlock.signature, this.signatureContext, this.lastBlock.signedTxs, this.lastBlock.bucketRef);
58
59
  }
59
60
  toBlockInfo() {
60
61
  if (!this.lastBlock) {
@@ -156,6 +157,12 @@ import { TopicType } from './topic_type.js';
156
157
  } else {
157
158
  buffer.push(0); // hasSignedTxs = false
158
159
  }
160
+ // Optional bucket-reference tail. Appended only when set, so a proposal without a reference
161
+ // serializes without the tail and a decoder that reaches EOF reads it as unset.
162
+ if (this.lastBlock.bucketRef) {
163
+ buffer.push(1); // hasBucketRef = true
164
+ buffer.push(this.lastBlock.bucketRef.toBuffer());
165
+ }
159
166
  } else {
160
167
  buffer.push(0); // hasLastBlock = false
161
168
  }
@@ -185,12 +192,22 @@ import { TopicType } from './topic_type.js';
185
192
  signedTxs = SignedTxs.fromBuffer(reader);
186
193
  }
187
194
  }
195
+ // Optional bucket-reference tail. A buffer that ends after the signedTxs flag decodes as
196
+ // "no reference", so proposals written without the tail round-trip cleanly.
197
+ let bucketRef;
198
+ if (!reader.isEmpty()) {
199
+ const hasBucketRef = reader.readNumber();
200
+ if (hasBucketRef) {
201
+ bucketRef = InboxBucketRef.fromBuffer(reader);
202
+ }
203
+ }
188
204
  return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext, {
189
205
  blockHeader,
190
206
  indexWithinCheckpoint,
191
207
  txHashes,
192
208
  signature: blockSignature,
193
- signedTxs
209
+ signedTxs,
210
+ bucketRef
194
211
  });
195
212
  }
196
213
  return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, signatureContext);
@@ -198,7 +215,7 @@ import { TopicType } from './topic_type.js';
198
215
  getSize() {
199
216
  let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4 /* chainId */ + 20 /* rollupAddress */ + 4; /* hasLastBlock flag */
200
217
  if (this.lastBlock) {
201
- size += this.lastBlock.blockHeader.getSize() + 4 /* indexWithinCheckpoint */ + this.lastBlock.signature.getSize() + 4 /* txHashes.length */ + this.lastBlock.txHashes.length * TxHash.SIZE + 4 /* hasSignedTxs flag */ + (this.lastBlock.signedTxs ? this.lastBlock.signedTxs.getSize() : 0);
218
+ size += this.lastBlock.blockHeader.getSize() + 4 /* indexWithinCheckpoint */ + this.lastBlock.signature.getSize() + 4 /* txHashes.length */ + this.lastBlock.txHashes.length * TxHash.SIZE + 4 /* hasSignedTxs flag */ + (this.lastBlock.signedTxs ? this.lastBlock.signedTxs.getSize() : 0) + (this.lastBlock.bucketRef ? 4 /* hasBucketRef flag */ + this.lastBlock.bucketRef.getSize() : 0);
202
219
  }
203
220
  return size;
204
221
  }
@@ -228,7 +245,8 @@ import { TopicType } from './topic_type.js';
228
245
  blockHeader: this.lastBlock.blockHeader.toInspect(),
229
246
  indexWithinCheckpoint: this.lastBlock.indexWithinCheckpoint,
230
247
  txHashes: this.lastBlock.txHashes.map((h)=>h.toString()),
231
- signature: this.lastBlock.signature.toString()
248
+ signature: this.lastBlock.signature.toString(),
249
+ bucketRef: this.lastBlock.bucketRef?.toInspect()
232
250
  } : undefined
233
251
  };
234
252
  }
@@ -62,7 +62,7 @@ export declare class ConsensusPayload implements Signable {
62
62
  lastArchive: `0x${string}`;
63
63
  blockHeadersHash: `0x${string}`;
64
64
  blobsHash: `0x${string}`;
65
- inHash: `0x${string}`;
65
+ inboxRollingHash: `0x${string}`;
66
66
  epochOutHash: `0x${string}`;
67
67
  slotNumber: import("@aztec/foundation/schemas").SlotNumber;
68
68
  timestamp: bigint;
@@ -7,7 +7,8 @@ export * from './gossipable.js';
7
7
  export * from './signature_utils.js';
8
8
  export * from './signed_txs.js';
9
9
  export * from './topic_type.js';
10
+ export * from './validated_proposal.js';
10
11
  export * from './message_validator.js';
11
12
  export * from './peer_error.js';
12
13
  export * from './constants.js';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUMifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
package/dest/p2p/index.js CHANGED
@@ -7,6 +7,7 @@ export * from './gossipable.js';
7
7
  export * from './signature_utils.js';
8
8
  export * from './signed_txs.js';
9
9
  export * from './topic_type.js';
10
+ export * from './validated_proposal.js';
10
11
  export * from './message_validator.js';
11
12
  export * from './peer_error.js';
12
13
  export * from './constants.js';
@@ -0,0 +1,35 @@
1
+ import type { Branded } from '@aztec/foundation/branded-types';
2
+ import type { BlockProposal } from './block_proposal.js';
3
+ import type { CheckpointProposalCore } from './checkpoint_proposal.js';
4
+ /**
5
+ * A block proposal that has passed p2p ingress validation.
6
+ *
7
+ * Downstream consumers (the validator client's proposal handlers) rely on that validation having already
8
+ * happened and do not repeat it, so this brand marks the proposals they are allowed to receive. It is a
9
+ * compile-time marker only: at runtime a `ValidatedBlockProposal` is just a `BlockProposal`.
10
+ */
11
+ export type ValidatedBlockProposal = Branded<BlockProposal, 'ValidatedBlockProposal'>;
12
+ /**
13
+ * Marks a block proposal as having passed p2p ingress validation.
14
+ *
15
+ * May only be called at a point where the gossipsub topic validator has accepted the proposal, which covers
16
+ * the signature context, the signature itself, the expected proposer for the slot, the index within the
17
+ * checkpoint, the tx field checks, and the receive-window timeliness check.
18
+ */
19
+ export declare function ValidatedBlockProposal(proposal: BlockProposal): ValidatedBlockProposal;
20
+ /**
21
+ * A checkpoint proposal (without its last block) that has passed p2p ingress validation.
22
+ *
23
+ * Downstream consumers (the validator client's proposal handlers) rely on that validation having already
24
+ * happened and do not repeat it, so this brand marks the proposals they are allowed to receive. It is a
25
+ * compile-time marker only: at runtime a `ValidatedCheckpointProposalCore` is just a `CheckpointProposalCore`.
26
+ */
27
+ export type ValidatedCheckpointProposalCore = Branded<CheckpointProposalCore, 'ValidatedCheckpointProposalCore'>;
28
+ /**
29
+ * Marks a checkpoint proposal as having passed p2p ingress validation.
30
+ *
31
+ * May only be called at a point where the gossipsub topic validator has accepted the proposal, which covers
32
+ * the expected proposer for the slot and the receive-window timeliness check.
33
+ */
34
+ export declare function ValidatedCheckpointProposalCore(proposal: CheckpointProposalCore): ValidatedCheckpointProposalCore;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVkX3Byb3Bvc2FsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcDJwL3ZhbGlkYXRlZF9wcm9wb3NhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZFOzs7Ozs7R0FNRztBQUNILE1BQU0sTUFBTSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLHdCQUF3QixDQUFDLENBQUM7QUFFdEY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxhQUFhLEdBQUcsc0JBQXNCLENBRXRGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO0FBRWpIOzs7OztHQUtHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUFDLFFBQVEsRUFBRSxzQkFBc0IsR0FBRywrQkFBK0IsQ0FFakgifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validated_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/validated_proposal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;AAEtF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,sBAAsB,CAEtF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC,sBAAsB,EAAE,iCAAiC,CAAC,CAAC;AAEjH;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,+BAA+B,CAEjH"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Marks a block proposal as having passed p2p ingress validation.
3
+ *
4
+ * May only be called at a point where the gossipsub topic validator has accepted the proposal, which covers
5
+ * the signature context, the signature itself, the expected proposer for the slot, the index within the
6
+ * checkpoint, the tx field checks, and the receive-window timeliness check.
7
+ */ export function ValidatedBlockProposal(proposal) {
8
+ return proposal;
9
+ }
10
+ /**
11
+ * Marks a checkpoint proposal as having passed p2p ingress validation.
12
+ *
13
+ * May only be called at a point where the gossipsub topic validator has accepted the proposal, which covers
14
+ * the expected proposer for the slot and the receive-window timeliness check.
15
+ */ export function ValidatedCheckpointProposalCore(proposal) {
16
+ return proposal;
17
+ }
@@ -0,0 +1,7 @@
1
+ /** Legacy `BlockProposal.toBuffer()` bytes (no signedTxs, no bucket reference). */
2
+ export declare const LEGACY_BLOCK_PROPOSAL_HEX = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000800000000";
3
+ /** Legacy `CheckpointProposal.toBuffer()` bytes (lastBlock without signedTxs or bucket reference). */
4
+ export declare const LEGACY_CHECKPOINT_PROPOSAL_HEX = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000700000000";
5
+ /** Legacy `BlockProposal.getPayloadToSign()` bytes (no bucket reference). */
6
+ export declare const LEGACY_BLOCK_PROPOSAL_PAYLOAD_HEX = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000630000000200000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000008";
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZV9jb21wYXRfZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvd2lyZV9jb21wYXRfZml4dHVyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsbUZBQW1GO0FBQ25GLGVBQU8sTUFBTSx5QkFBeUIsdXdDQUNndUMsQ0FBQztBQUV2d0Msc0dBQXNHO0FBQ3RHLGVBQU8sTUFBTSw4QkFBOEIsK2tFQUNtaUUsQ0FBQztBQUUva0UsNkVBQTZFO0FBQzdFLGVBQU8sTUFBTSxpQ0FBaUMsdWtDQUN3aEMsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire_compat_fixtures.d.ts","sourceRoot":"","sources":["../../src/p2p/wire_compat_fixtures.ts"],"names":[],"mappings":"AAYA,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,uwCACguC,CAAC;AAEvwC,sGAAsG;AACtG,eAAO,MAAM,8BAA8B,+kEACmiE,CAAC;AAE/kE,6EAA6E;AAC7E,eAAO,MAAM,iCAAiC,ukCACwhC,CAAC"}
@@ -0,0 +1,14 @@
1
+ // Golden wire fixtures that pin the exact bytes a peer produces and consumes, so the optional bucket-reference tail
2
+ // added to proposals stays wire compatible: an unset proposal must serialize to these bytes, and decoding these bytes
3
+ // must yield no bucket reference. The block-proposal fixtures were refreshed for the removal of the legacy `inHash`
4
+ // field; the checkpoint-proposal fixture was refreshed for the checkpoint-header format change.
5
+ //
6
+ // Both fixtures come from a deterministic proposal built with:
7
+ // BlockHeader.empty(), IndexWithinCheckpoint(3), archiveRoot=Fr(99),
8
+ // txHashes=[TxHash.fromField(Fr(7)), TxHash.fromField(Fr(8))], Signature.empty(), EMPTY_COORDINATION_SIGNATURE_CONTEXT
9
+ // (checkpoint: CheckpointHeader.empty(), archive=Fr(123), feeAssetPriceModifier=0, empty signature/context, and a
10
+ // lastBlock with BlockHeader.empty(), IndexWithinCheckpoint(4), txHashes=[TxHash.fromField(Fr(7))], empty signature).
11
+ // Regenerate the checkpoint fixture only when the checkpoint serialization format changes on purpose.
12
+ /** Legacy `BlockProposal.toBuffer()` bytes (no signedTxs, no bucket reference). */ export const LEGACY_BLOCK_PROPOSAL_HEX = '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000800000000';
13
+ /** Legacy `CheckpointProposal.toBuffer()` bytes (lastBlock without signedTxs or bucket reference). */ export const LEGACY_CHECKPOINT_PROPOSAL_HEX = '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000700000000';
14
+ /** Legacy `BlockProposal.getPayloadToSign()` bytes (no bucket reference). */ export const LEGACY_BLOCK_PROPOSAL_PAYLOAD_HEX = '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000630000000200000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000008';
@@ -0,0 +1,61 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { BufferReader } from '@aztec/foundation/serialize';
3
+ /** The InboxParity size ladder, ascending. One VK per size; the prover proves the smallest that fits. */
4
+ export declare const INBOX_PARITY_SIZES: readonly [64, 256, 1024];
5
+ /** A valid InboxParity ladder size. */
6
+ export type InboxParitySize = (typeof INBOX_PARITY_SIZES)[number];
7
+ /**
8
+ * Picks the smallest ladder size that can hold `numMessages` messages.
9
+ * @throws if `numMessages` exceeds the largest rung.
10
+ */
11
+ export declare function pickInboxParitySize(numMessages: number): InboxParitySize;
12
+ /**
13
+ * Private inputs for one `InboxParity<S>` proof (S = `size`). The prover produces exactly one per checkpoint, sized
14
+ * by the checkpoint's message count via {@link pickInboxParitySize}.
15
+ */
16
+ export declare class InboxParityPrivateInputs {
17
+ /** Ladder size S: the length of `messages` and the circuit variant to prove ({@link INBOX_PARITY_SIZES}). */
18
+ readonly size: InboxParitySize;
19
+ /** The checkpoint's L1-to-L2 messages, padded with zeros to `size`; the first `numMessages` are real. */
20
+ readonly messages: Fr[];
21
+ /** Number of real (non-padding) messages in `messages`. */
22
+ readonly numMessages: number;
23
+ /** Inbox rolling hash before this checkpoint's messages (the previous checkpoint's end; genesis is zero). */
24
+ readonly startRollingHash: Fr;
25
+ /** Prover identity committed to by the circuit, for sybil protection. */
26
+ readonly proverId: Fr;
27
+ constructor(
28
+ /** Ladder size S: the length of `messages` and the circuit variant to prove ({@link INBOX_PARITY_SIZES}). */
29
+ size: InboxParitySize,
30
+ /** The checkpoint's L1-to-L2 messages, padded with zeros to `size`; the first `numMessages` are real. */
31
+ messages: Fr[],
32
+ /** Number of real (non-padding) messages in `messages`. */
33
+ numMessages: number,
34
+ /** Inbox rolling hash before this checkpoint's messages (the previous checkpoint's end; genesis is zero). */
35
+ startRollingHash: Fr,
36
+ /** Prover identity committed to by the circuit, for sybil protection. */
37
+ proverId: Fr);
38
+ /**
39
+ * Builds the inputs from a checkpoint's real messages, sizing the circuit by the message count and padding the
40
+ * message array out to that size.
41
+ */
42
+ static fromMessages(messages: Fr[], startRollingHash: Fr, proverId: Fr): InboxParityPrivateInputs;
43
+ /** Serializes the inputs to a buffer. */
44
+ toBuffer(): Buffer<ArrayBufferLike>;
45
+ /** Serializes the inputs to a hex string. */
46
+ toString(): `0x${string}`;
47
+ /**
48
+ * Deserializes the inputs from a buffer.
49
+ * @param buffer - The buffer to deserialize from.
50
+ */
51
+ static fromBuffer(buffer: Buffer | BufferReader): InboxParityPrivateInputs;
52
+ /**
53
+ * Deserializes the inputs from a hex string.
54
+ * @param str - The hex string to deserialize from.
55
+ */
56
+ static fromString(str: string): InboxParityPrivateInputs;
57
+ /** Returns a buffer representation for JSON serialization. */
58
+ toJSON(): Buffer<ArrayBufferLike>;
59
+ static get schema(): import("zod").ZodType<InboxParityPrivateInputs, string, import("zod/v4/core").$ZodTypeInternals<InboxParityPrivateInputs, string>>;
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3hfcGFyaXR5X3ByaXZhdGVfaW5wdXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyaXR5L2luYm94X3Bhcml0eV9wcml2YXRlX2lucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RSx5R0FBeUc7QUFDekcsZUFBTyxNQUFNLGtCQUFrQiwwQkFBd0YsQ0FBQztBQUV4SCx1Q0FBdUM7QUFDdkMsTUFBTSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQU8sa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVsRTs7O0dBR0c7QUFDSCx3QkFBZ0IsbUJBQW1CLENBQUMsV0FBVyxFQUFFLE1BQU0sR0FBRyxlQUFlLENBUXhFO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsd0JBQXdCO0lBRWpDLDZHQUE2RzthQUM3RixJQUFJLEVBQUUsZUFBZTtJQUNyQyx5R0FBeUc7YUFDekYsUUFBUSxFQUFFLEVBQUUsRUFBRTtJQUM5QiwyREFBMkQ7YUFDM0MsV0FBVyxFQUFFLE1BQU07SUFDbkMsNkdBQTZHO2FBQzdGLGdCQUFnQixFQUFFLEVBQUU7SUFDcEMseUVBQXlFO2FBQ3pELFFBQVEsRUFBRSxFQUFFO0lBVjlCO0lBQ0UsNkdBQTZHO0lBQzdGLElBQUksRUFBRSxlQUFlO0lBQ3JDLHlHQUF5RztJQUN6RixRQUFRLEVBQUUsRUFBRSxFQUFFO0lBQzlCLDJEQUEyRDtJQUMzQyxXQUFXLEVBQUUsTUFBTTtJQUNuQyw2R0FBNkc7SUFDN0YsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQyx5RUFBeUU7SUFDekQsUUFBUSxFQUFFLEVBQUUsRUFLN0I7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyx3QkFBd0IsQ0FVaEc7SUFFRCx5Q0FBeUM7SUFDekMsUUFBUSw0QkFRUDtJQUVELDZDQUE2QztJQUM3QyxRQUFRLGtCQUVQO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksNEJBWTlDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSw0QkFFNUI7SUFFRCw4REFBOEQ7SUFDOUQsTUFBTSw0QkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLHVJQUVoQjtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox_parity_private_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/inbox_parity_private_inputs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,yGAAyG;AACzG,eAAO,MAAM,kBAAkB,0BAAwF,CAAC;AAExH,uCAAuC;AACvC,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAQxE;AAED;;;GAGG;AACH,qBAAa,wBAAwB;IAEjC,6GAA6G;aAC7F,IAAI,EAAE,eAAe;IACrC,yGAAyG;aACzF,QAAQ,EAAE,EAAE,EAAE;IAC9B,2DAA2D;aAC3C,WAAW,EAAE,MAAM;IACnC,6GAA6G;aAC7F,gBAAgB,EAAE,EAAE;IACpC,yEAAyE;aACzD,QAAQ,EAAE,EAAE;IAV9B;IACE,6GAA6G;IAC7F,IAAI,EAAE,eAAe;IACrC,yGAAyG;IACzF,QAAQ,EAAE,EAAE,EAAE;IAC9B,2DAA2D;IAC3C,WAAW,EAAE,MAAM;IACnC,6GAA6G;IAC7F,gBAAgB,EAAE,EAAE;IACpC,yEAAyE;IACzD,QAAQ,EAAE,EAAE,EAK7B;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,wBAAwB,CAUhG;IAED,yCAAyC;IACzC,QAAQ,4BAQP;IAED,6CAA6C;IAC7C,QAAQ,kBAEP;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,4BAY9C;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,4BAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,MAAM,KAAK,MAAM,uIAEhB;CACF"}
@@ -0,0 +1,79 @@
1
+ import { INBOX_PARITY_SIZE_LARGE, INBOX_PARITY_SIZE_MEDIUM, INBOX_PARITY_SIZE_SMALL } from '@aztec/constants';
2
+ import { padArrayEnd } from '@aztec/foundation/collection';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { bufferSchemaFor } from '@aztec/foundation/schemas';
5
+ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
6
+ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
7
+ /** The InboxParity size ladder, ascending. One VK per size; the prover proves the smallest that fits. */ export const INBOX_PARITY_SIZES = [
8
+ INBOX_PARITY_SIZE_SMALL,
9
+ INBOX_PARITY_SIZE_MEDIUM,
10
+ INBOX_PARITY_SIZE_LARGE
11
+ ];
12
+ /**
13
+ * Picks the smallest ladder size that can hold `numMessages` messages.
14
+ * @throws if `numMessages` exceeds the largest rung.
15
+ */ export function pickInboxParitySize(numMessages) {
16
+ const size = INBOX_PARITY_SIZES.find((s)=>numMessages <= s);
17
+ if (size === undefined) {
18
+ throw new Error(`Cannot fit ${numMessages} L1-to-L2 messages into any InboxParity size (max ${INBOX_PARITY_SIZE_LARGE})`);
19
+ }
20
+ return size;
21
+ }
22
+ /**
23
+ * Private inputs for one `InboxParity<S>` proof (S = `size`). The prover produces exactly one per checkpoint, sized
24
+ * by the checkpoint's message count via {@link pickInboxParitySize}.
25
+ */ export class InboxParityPrivateInputs {
26
+ size;
27
+ messages;
28
+ numMessages;
29
+ startRollingHash;
30
+ proverId;
31
+ constructor(/** Ladder size S: the length of `messages` and the circuit variant to prove ({@link INBOX_PARITY_SIZES}). */ size, /** The checkpoint's L1-to-L2 messages, padded with zeros to `size`; the first `numMessages` are real. */ messages, /** Number of real (non-padding) messages in `messages`. */ numMessages, /** Inbox rolling hash before this checkpoint's messages (the previous checkpoint's end; genesis is zero). */ startRollingHash, /** Prover identity committed to by the circuit, for sybil protection. */ proverId){
32
+ this.size = size;
33
+ this.messages = messages;
34
+ this.numMessages = numMessages;
35
+ this.startRollingHash = startRollingHash;
36
+ this.proverId = proverId;
37
+ if (messages.length !== size) {
38
+ throw new Error(`InboxParity messages length (${messages.length}) must equal size (${size})`);
39
+ }
40
+ }
41
+ /**
42
+ * Builds the inputs from a checkpoint's real messages, sizing the circuit by the message count and padding the
43
+ * message array out to that size.
44
+ */ static fromMessages(messages, startRollingHash, proverId) {
45
+ const size = pickInboxParitySize(messages.length);
46
+ // Explicit `<Fr, number>` keeps the result `Fr[]`; padding to the union-literal `size` would infer a deep tuple.
47
+ return new InboxParityPrivateInputs(size, padArrayEnd(messages, Fr.ZERO, size), messages.length, startRollingHash, proverId);
48
+ }
49
+ /** Serializes the inputs to a buffer. */ toBuffer() {
50
+ return serializeToBuffer(new Fr(this.size), this.messages, new Fr(this.numMessages), this.startRollingHash, this.proverId);
51
+ }
52
+ /** Serializes the inputs to a hex string. */ toString() {
53
+ return bufferToHex(this.toBuffer());
54
+ }
55
+ /**
56
+ * Deserializes the inputs from a buffer.
57
+ * @param buffer - The buffer to deserialize from.
58
+ */ static fromBuffer(buffer) {
59
+ const reader = BufferReader.asReader(buffer);
60
+ const size = Fr.fromBuffer(reader).toNumber();
61
+ // Array.from keeps the type `Fr[]`; readArray with the union-literal `size` would infer a deep tuple.
62
+ const messages = Array.from({
63
+ length: size
64
+ }, ()=>Fr.fromBuffer(reader));
65
+ return new InboxParityPrivateInputs(size, messages, Fr.fromBuffer(reader).toNumber(), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
66
+ }
67
+ /**
68
+ * Deserializes the inputs from a hex string.
69
+ * @param str - The hex string to deserialize from.
70
+ */ static fromString(str) {
71
+ return InboxParityPrivateInputs.fromBuffer(hexToBuffer(str));
72
+ }
73
+ /** Returns a buffer representation for JSON serialization. */ toJSON() {
74
+ return this.toBuffer();
75
+ }
76
+ static get schema() {
77
+ return bufferSchemaFor(InboxParityPrivateInputs);
78
+ }
79
+ }
@@ -1,4 +1,3 @@
1
- export * from './parity_base_private_inputs.js';
1
+ export * from './inbox_parity_private_inputs.js';
2
2
  export * from './parity_public_inputs.js';
3
- export * from './parity_root_private_inputs.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUNBQWlDLENBQUMifQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJCQUEyQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parity/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parity/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC"}
@@ -1,3 +1,2 @@
1
- export * from './parity_base_private_inputs.js';
1
+ export * from './inbox_parity_private_inputs.js';
2
2
  export * from './parity_public_inputs.js';
3
- export * from './parity_root_private_inputs.js';
@@ -1,22 +1,23 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BufferReader } from '@aztec/foundation/serialize';
3
3
  import type { FieldsOf } from '@aztec/foundation/types';
4
+ import { L1ToL2MessageSponge } from '../messaging/l1_to_l2_message_sponge.js';
4
5
  export declare class ParityPublicInputs {
5
- /** Root of the SHA256 tree. */
6
- shaRoot: Fr;
7
- /** Root of the converted tree. */
8
- convertedRoot: Fr;
9
- /** Root of the VK tree */
10
- vkTreeRoot: Fr;
6
+ /** Inbox rolling hash before absorbing this checkpoint's messages. */
7
+ startRollingHash: Fr;
8
+ /** Inbox rolling hash after absorbing the checkpoint's real messages. */
9
+ endRollingHash: Fr;
10
+ /** Message-bundle sponge after absorbing the same real messages into the empty per-checkpoint sponge. */
11
+ endSponge: L1ToL2MessageSponge;
11
12
  /** Prover identity committed to by the circuit, for sybil protection. */
12
13
  proverId: Fr;
13
14
  constructor(
14
- /** Root of the SHA256 tree. */
15
- shaRoot: Fr,
16
- /** Root of the converted tree. */
17
- convertedRoot: Fr,
18
- /** Root of the VK tree */
19
- vkTreeRoot: Fr,
15
+ /** Inbox rolling hash before absorbing this checkpoint's messages. */
16
+ startRollingHash: Fr,
17
+ /** Inbox rolling hash after absorbing the checkpoint's real messages. */
18
+ endRollingHash: Fr,
19
+ /** Message-bundle sponge after absorbing the same real messages into the empty per-checkpoint sponge. */
20
+ endSponge: L1ToL2MessageSponge,
20
21
  /** Prover identity committed to by the circuit, for sybil protection. */
21
22
  proverId: Fr);
22
23
  /**
@@ -42,7 +43,7 @@ export declare class ParityPublicInputs {
42
43
  * @param fields - The instance to get the fields from.
43
44
  * @returns The instance fields.
44
45
  */
45
- static getFields(fields: FieldsOf<ParityPublicInputs>): readonly [Fr, Fr, Fr, Fr];
46
+ static getFields(fields: FieldsOf<ParityPublicInputs>): readonly [Fr, Fr, L1ToL2MessageSponge, Fr];
46
47
  /**
47
48
  * Deserializes the inputs from a buffer.
48
49
  * @param buffer - The buffer to deserialize from.
@@ -57,4 +58,4 @@ export declare class ParityPublicInputs {
57
58
  static fromString(str: string): ParityPublicInputs;
58
59
  static get schema(): import("zod").ZodType<ParityPublicInputs, string, import("zod/v4/core").$ZodTypeInternals<ParityPublicInputs, string>>;
59
60
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyaXR5X3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvcGFyaXR5X3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQscUJBQWEsa0JBQWtCO0lBRTNCLCtCQUErQjtJQUN4QixPQUFPLEVBQUUsRUFBRTtJQUNsQixrQ0FBa0M7SUFDM0IsYUFBYSxFQUFFLEVBQUU7SUFDeEIsMEJBQTBCO0lBQ25CLFVBQVUsRUFBRSxFQUFFO0lBQ3JCLHlFQUF5RTtJQUNsRSxRQUFRLEVBQUUsRUFBRTtJQVJyQjtJQUNFLCtCQUErQjtJQUN4QixPQUFPLEVBQUUsRUFBRTtJQUNsQixrQ0FBa0M7SUFDM0IsYUFBYSxFQUFFLEVBQUU7SUFDeEIsMEJBQTBCO0lBQ25CLFVBQVUsRUFBRSxFQUFFO0lBQ3JCLHlFQUF5RTtJQUNsRSxRQUFRLEVBQUUsRUFBRSxFQUtwQjtJQUVEOzs7T0FHRztJQUNILFFBQVEsNEJBRVA7SUFFRDs7O09BR0c7SUFDSCxRQUFRLGtCQUVQO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sNEJBRUw7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsa0JBQWtCLENBRXBFO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyw2QkFFcEQ7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksc0JBUTlDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sc0JBRTVCO0lBRUQsTUFBTSxLQUFLLE1BQU0sMkhBRWhCO0NBQ0YifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyaXR5X3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJpdHkvcGFyaXR5X3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFOUUscUJBQWEsa0JBQWtCO0lBRTNCLHNFQUFzRTtJQUMvRCxnQkFBZ0IsRUFBRSxFQUFFO0lBQzNCLHlFQUF5RTtJQUNsRSxjQUFjLEVBQUUsRUFBRTtJQUN6Qix5R0FBeUc7SUFDbEcsU0FBUyxFQUFFLG1CQUFtQjtJQUNyQyx5RUFBeUU7SUFDbEUsUUFBUSxFQUFFLEVBQUU7SUFSckI7SUFDRSxzRUFBc0U7SUFDL0QsZ0JBQWdCLEVBQUUsRUFBRTtJQUMzQix5RUFBeUU7SUFDbEUsY0FBYyxFQUFFLEVBQUU7SUFDekIseUdBQXlHO0lBQ2xHLFNBQVMsRUFBRSxtQkFBbUI7SUFDckMseUVBQXlFO0lBQ2xFLFFBQVEsRUFBRSxFQUFFLEVBQ2pCO0lBRUo7OztPQUdHO0lBQ0gsUUFBUSw0QkFFUDtJQUVEOzs7T0FHRztJQUNILFFBQVEsa0JBRVA7SUFFRCx1REFBdUQ7SUFDdkQsTUFBTSw0QkFFTDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxrQkFBa0IsQ0FFcEU7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLDhDQUVwRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxzQkFROUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxzQkFFNUI7SUFFRCxNQUFNLEtBQUssTUFBTSwySEFFaEI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"parity_public_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAAa,kBAAkB;IAE3B,+BAA+B;IACxB,OAAO,EAAE,EAAE;IAClB,kCAAkC;IAC3B,aAAa,EAAE,EAAE;IACxB,0BAA0B;IACnB,UAAU,EAAE,EAAE;IACrB,yEAAyE;IAClE,QAAQ,EAAE,EAAE;IARrB;IACE,+BAA+B;IACxB,OAAO,EAAE,EAAE;IAClB,kCAAkC;IAC3B,aAAa,EAAE,EAAE;IACxB,0BAA0B;IACnB,UAAU,EAAE,EAAE;IACrB,yEAAyE;IAClE,QAAQ,EAAE,EAAE,EAKpB;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;OAGG;IACH,QAAQ,kBAEP;IAED,uDAAuD;IACvD,MAAM,4BAEL;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEpE;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,6BAEpD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,sBAQ9C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,sBAE5B;IAED,MAAM,KAAK,MAAM,2HAEhB;CACF"}
1
+ {"version":3,"file":"parity_public_inputs.d.ts","sourceRoot":"","sources":["../../src/parity/parity_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,qBAAa,kBAAkB;IAE3B,sEAAsE;IAC/D,gBAAgB,EAAE,EAAE;IAC3B,yEAAyE;IAClE,cAAc,EAAE,EAAE;IACzB,yGAAyG;IAClG,SAAS,EAAE,mBAAmB;IACrC,yEAAyE;IAClE,QAAQ,EAAE,EAAE;IARrB;IACE,sEAAsE;IAC/D,gBAAgB,EAAE,EAAE;IAC3B,yEAAyE;IAClE,cAAc,EAAE,EAAE;IACzB,yGAAyG;IAClG,SAAS,EAAE,mBAAmB;IACrC,yEAAyE;IAClE,QAAQ,EAAE,EAAE,EACjB;IAEJ;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;OAGG;IACH,QAAQ,kBAEP;IAED,uDAAuD;IACvD,MAAM,4BAEL;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEpE;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,CAAC,8CAEpD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,sBAQ9C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,sBAE5B;IAED,MAAM,KAAK,MAAM,2HAEhB;CACF"}