@aztec/stdlib 6.0.0-nightly.20260810 → 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
@@ -1,5 +1,5 @@
1
1
  import { makeBlobAccumulator, makeFinalBlobAccumulator, makeFinalBlobBatchingChallenges, makeSpongeBlob } from '@aztec/blob-lib/testing';
2
- import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS, CHONK_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, MAX_CHECKPOINTS_PER_EPOCH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PROCESSABLE_L2_GAS, MAX_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_BASE_PARITY_PER_ROOT_PARITY, NUM_MSGS_PER_BASE_PARITY, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
2
+ import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS, CHONK_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, INBOX_PARITY_SIZE_SMALL, L1_TO_L2_MSG_TREE_HEIGHT, MAX_CHECKPOINTS_PER_EPOCH, MAX_CONTRACT_CLASS_LOGS_PER_TX, MAX_ENQUEUED_CALLS_PER_CALL, MAX_ENQUEUED_CALLS_PER_TX, MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L1_TO_L2_MSGS_PER_BLOCK, MAX_L1_TO_L2_MSGS_PER_CHECKPOINT, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_TX, MAX_NOTE_HASHES_PER_CALL, MAX_NOTE_HASHES_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL, MAX_NULLIFIERS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PRIVATE_LOGS_PER_CALL, MAX_PRIVATE_LOGS_PER_TX, MAX_PROCESSABLE_L2_GAS, MAX_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, PRIVATE_LOG_SIZE_IN_FIELDS, PUBLIC_DATA_TREE_HEIGHT, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
3
3
  import { makeTuple } from '@aztec/foundation/array';
4
4
  import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
5
5
  import { compact } from '@aztec/foundation/collection';
@@ -34,10 +34,11 @@ import { AppTaggingSecret } from '../logs/app_tagging_secret.js';
34
34
  import { ContractClassLog, ContractClassLogFields } from '../logs/index.js';
35
35
  import { PrivateLog } from '../logs/private_log.js';
36
36
  import { FlatPublicLogs, PublicLog } from '../logs/public_log.js';
37
+ import { L1ToL2MessageBundle } from '../messaging/l1_to_l2_message_bundle.js';
38
+ import { L1ToL2MessageSponge } from '../messaging/l1_to_l2_message_sponge.js';
37
39
  import { CountedL2ToL1Message, L2ToL1Message, ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
38
- import { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js';
40
+ import { InboxParityPrivateInputs } from '../parity/inbox_parity_private_inputs.js';
39
41
  import { ParityPublicInputs } from '../parity/parity_public_inputs.js';
40
- import { ParityRootPrivateInputs } from '../parity/parity_root_private_inputs.js';
41
42
  import { ProofData, ProofDataForFixedVk } from '../proofs/index.js';
42
43
  import { Proof } from '../proofs/proof.js';
43
44
  import { makeRecursiveProof } from '../proofs/recursive_proof.js';
@@ -45,7 +46,7 @@ import { PrivateBaseRollupHints, PublicBaseRollupHints } from '../rollup/base_ro
45
46
  import { BlockConstantData } from '../rollup/block_constant_data.js';
46
47
  import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
47
48
  import { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
48
- import { BlockRootFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs } from '../rollup/block_root_rollup_private_inputs.js';
49
+ import { BlockRootRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs } from '../rollup/block_root_rollup_private_inputs.js';
49
50
  import { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
50
51
  import { CheckpointHeader } from '../rollup/checkpoint_header.js';
51
52
  import { CheckpointRollupPublicInputs, FeeRecipient } from '../rollup/checkpoint_rollup_public_inputs.js';
@@ -117,8 +118,6 @@ function makePublicLog(seed) {
117
118
  * Creates a default instance of gas settings. No seed value is used to ensure we allocate a sensible amount of gas for testing.
118
119
  */ export function makeGasSettings() {
119
120
  return GasSettings.fallback({
120
- // Arbitrary daGas pinned to the pre-existing fixture value so avm_inputs.testdata.bin (consumed by
121
- // the C++ vm2 tests) stays byte-stable; teardown derives to the same values the old fallback produced.
122
121
  gasLimits: new Gas(196_608, MAX_PROCESSABLE_L2_GAS),
123
122
  maxFeesPerGas: new GasFees(10, 10)
124
123
  });
@@ -398,19 +397,24 @@ function makeEpochConstantData(seed = 1) {
398
397
  * @param blockNumber - The block number to use for generating the block merge or block root rollup circuit public inputs.
399
398
  * @returns A block merge or block root rollup circuit public inputs.
400
399
  */ export function makeBlockRollupPublicInputs(seed = 0) {
401
- return new BlockRollupPublicInputs(makeCheckpointConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeStateReference(seed + 0x400), makeStateReference(seed + 0x500), makeSpongeBlob(seed + 0x600), makeSpongeBlob(seed + 0x700), BigInt(seed + 0x800), fr(seed + 0x820), fr(seed + 0x830), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860));
400
+ return new BlockRollupPublicInputs(makeCheckpointConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeStateReference(seed + 0x400), makeStateReference(seed + 0x500), makeSpongeBlob(seed + 0x600), makeSpongeBlob(seed + 0x700), BigInt(seed + 0x800), fr(seed + 0x820), makeL1ToL2MessageSponge(seed + 0x835), makeL1ToL2MessageSponge(seed + 0x838), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860));
401
+ }
402
+ export function makeL1ToL2MessageSponge(seed = 0) {
403
+ return new L1ToL2MessageSponge(makeSpongeBlob(seed).sponge, seed % (INBOX_PARITY_SIZE_SMALL + 1));
402
404
  }
403
405
  export function makeCheckpointRollupPublicInputs(seed = 0) {
404
- return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeBlobAccumulator(seed + 0x600), makeBlobAccumulator(seed + 0x700), makeFinalBlobBatchingChallenges(seed + 0x800));
406
+ return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), makeAppendOnlyTreeSnapshot(seed + 0x350), fr(seed + 0x360), fr(seed + 0x370), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeBlobAccumulator(seed + 0x600), makeBlobAccumulator(seed + 0x700), makeFinalBlobBatchingChallenges(seed + 0x800));
405
407
  }
406
408
  export function makeParityPublicInputs(seed = 0) {
407
- return new ParityPublicInputs(new Fr(BigInt(seed + 0x200)), new Fr(BigInt(seed + 0x300)), new Fr(BigInt(seed + 0x400)), new Fr(BigInt(seed + 0x500)));
408
- }
409
- export function makeParityBasePrivateInputs(seed = 0) {
410
- return new ParityBasePrivateInputs(makeTuple(NUM_MSGS_PER_BASE_PARITY, fr, seed + 0x3000), new Fr(seed + 0x4000), new Fr(seed + 0x5000));
409
+ return new ParityPublicInputs(new Fr(BigInt(seed + 0x400)), new Fr(BigInt(seed + 0x500)), makeL1ToL2MessageSponge(seed + 0x580), new Fr(BigInt(seed + 0x800)));
411
410
  }
412
- export function makeParityRootPrivateInputs(seed = 0) {
413
- return new ParityRootPrivateInputs(makeTuple(NUM_BASE_PARITY_PER_ROOT_PARITY, ()=>makeProofData(seed, makeParityPublicInputs)));
411
+ export function makeInboxParityPrivateInputs(seed = 0) {
412
+ const size = INBOX_PARITY_SIZE_SMALL;
413
+ const numMsgs = seed % (size + 1);
414
+ const messages = Array.from({
415
+ length: size
416
+ }, (_, i)=>i < numMsgs ? fr(i + seed + 0x3000) : Fr.ZERO);
417
+ return new InboxParityPrivateInputs(size, messages, numMsgs, new Fr(seed + 0x3500), new Fr(seed + 0x5000));
414
418
  }
415
419
  /**
416
420
  * Makes root rollup public inputs.
@@ -418,7 +422,7 @@ export function makeParityRootPrivateInputs(seed = 0) {
418
422
  * @param blockNumber - The block number to use in the global variables of a header.
419
423
  * @returns A root rollup public inputs.
420
424
  */ export function makeRootRollupPublicInputs(seed = 0) {
421
- return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), makeFinalBlobAccumulator(seed + 0x700));
425
+ return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), fr(seed + 0x300), fr(seed + 0x320), fr(seed + 0x340), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>fr(seed), 0x400), makeTuple(MAX_CHECKPOINTS_PER_EPOCH, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), makeFinalBlobAccumulator(seed + 0x700));
422
426
  }
423
427
  export function makeBlockHeader(seed = 0, overrides = {}) {
424
428
  return BlockHeader.from({
@@ -436,7 +440,7 @@ export function makeCheckpointHeader(seed = 0, overrides = {}) {
436
440
  lastArchiveRoot: fr(seed + 0x100),
437
441
  blockHeadersHash: fr(seed + 0x150),
438
442
  blobsHash: fr(seed + 0x200),
439
- inHash: fr(seed + 0x210),
443
+ inboxRollingHash: fr(seed + 0x215),
440
444
  epochOutHash: fr(seed + 0x220),
441
445
  slotNumber: SlotNumber(seed + 0x300),
442
446
  timestamp: BigInt(seed + 0x400),
@@ -453,10 +457,10 @@ export function makeCheckpointHeader(seed = 0, overrides = {}) {
453
457
  * @param seed - The seed to use for generating the state reference.
454
458
  * @returns A state reference.
455
459
  */ export function makeStateReference(seed = 0) {
456
- return new StateReference(makeAppendOnlyTreeSnapshot(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP * seed), makePartialStateReference(seed + 1));
460
+ return new StateReference(makeAppendOnlyTreeSnapshot(MAX_L1_TO_L2_MSGS_PER_CHECKPOINT * seed), makePartialStateReference(seed + 1));
457
461
  }
458
462
  function makeTreeSnapshots(seed = 0) {
459
- return new TreeSnapshots(makeAppendOnlyTreeSnapshot(seed * NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP), makeAppendOnlyTreeSnapshot((seed + 0x10) * MAX_NOTE_HASHES_PER_TX), makeAppendOnlyTreeSnapshot((seed + 0x20) * MAX_NULLIFIERS_PER_TX), makeAppendOnlyTreeSnapshot((seed + 0x30) * MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX));
463
+ return new TreeSnapshots(makeAppendOnlyTreeSnapshot(seed * MAX_L1_TO_L2_MSGS_PER_CHECKPOINT), makeAppendOnlyTreeSnapshot((seed + 0x10) * MAX_NOTE_HASHES_PER_TX), makeAppendOnlyTreeSnapshot((seed + 0x20) * MAX_NULLIFIERS_PER_TX), makeAppendOnlyTreeSnapshot((seed + 0x30) * MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX));
460
464
  }
461
465
  /**
462
466
  * Makes arbitrary L2 to L1 message.
@@ -486,14 +490,14 @@ export function makeTxMergeRollupPrivateInputs(seed = 0) {
486
490
  makeProofData(seed + 0x1000, makeTxRollupPublicInputs)
487
491
  ]);
488
492
  }
489
- export function makeBlockRootFirstRollupPrivateInputs(seed = 0) {
490
- return new BlockRootFirstRollupPrivateInputs(makeProofData(seed, makeParityPublicInputs), [
493
+ export function makeBlockRootRollupPrivateInputs(seed = 0) {
494
+ return new BlockRootRollupPrivateInputs([
491
495
  makeProofData(seed + 0x1000, makeTxRollupPublicInputs),
492
496
  makeProofData(seed + 0x2000, makeTxRollupPublicInputs)
493
- ], makeAppendOnlyTreeSnapshot(seed + 0x3000), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
497
+ ], new L1ToL2MessageBundle(makeArray(MAX_L1_TO_L2_MSGS_PER_BLOCK, fr, seed + 0x2500), MAX_L1_TO_L2_MSGS_PER_BLOCK), makeAppendOnlyTreeSnapshot(seed + 0x3000), makeL1ToL2MessageSponge(seed + 0x3500), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_TREE_HEIGHT), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
494
498
  }
495
499
  export function makeBlockRootSingleTxRollupPrivateInputs(seed = 0) {
496
- return new BlockRootSingleTxRollupPrivateInputs(makeProofData(seed + 0x1000, makeTxRollupPublicInputs), makeSiblingPath(seed + 0x4000, ARCHIVE_HEIGHT));
500
+ return new BlockRootSingleTxRollupPrivateInputs(makeProofData(seed + 0x1000, makeTxRollupPublicInputs), new L1ToL2MessageBundle(makeArray(MAX_L1_TO_L2_MSGS_PER_BLOCK, fr, seed + 0x2500), 0), makeAppendOnlyTreeSnapshot(seed + 0x2800), makeL1ToL2MessageSponge(seed + 0x3000), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_TREE_HEIGHT), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
497
501
  }
498
502
  /**
499
503
  * Makes arbitrary block merge rollup inputs.
@@ -3,4 +3,4 @@ export declare function getBenchmarkContractArtifact(): ContractArtifact;
3
3
  export declare function getTestContractArtifact(): ContractArtifact;
4
4
  export declare function getTokenContractArtifact(): ContractArtifact;
5
5
  export declare function getPathToFixture(name: string): string;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBd0IsTUFBTSxpQkFBaUIsQ0FBQztBQUk5RSx3QkFBZ0IsNEJBQTRCLElBQUksZ0JBQWdCLENBSS9EO0FBR0Qsd0JBQWdCLHVCQUF1QixJQUFJLGdCQUFnQixDQUkxRDtBQUdELHdCQUFnQix3QkFBd0IsSUFBSSxnQkFBZ0IsQ0FJM0Q7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sVUFFNUMifQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBd0IsTUFBTSxpQkFBaUIsQ0FBQztBQU85RSx3QkFBZ0IsNEJBQTRCLElBQUksZ0JBQWdCLENBSS9EO0FBR0Qsd0JBQWdCLHVCQUF1QixJQUFJLGdCQUFnQixDQUkxRDtBQUdELHdCQUFnQix3QkFBd0IsSUFBSSxnQkFBZ0IsQ0FJM0Q7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sVUFFNUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAI9E,wBAAgB,4BAA4B,IAAI,gBAAgB,CAI/D;AAGD,wBAAgB,uBAAuB,IAAI,gBAAgB,CAI1D;AAGD,wBAAgB,wBAAwB,IAAI,gBAAgB,CAI3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAE5C"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AAO9E,wBAAgB,4BAA4B,IAAI,gBAAgB,CAI/D;AAGD,wBAAgB,uBAAuB,IAAI,gBAAgB,CAI1D;AAGD,wBAAgB,wBAAwB,IAAI,gBAAgB,CAI3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAE5C"}
@@ -2,6 +2,8 @@ import { readFileSync } from 'fs';
2
2
  import { dirname, resolve } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  import { loadContractArtifact } from '../abi/index.js';
5
+ // The fixtures are gitignored copies of noir-contracts build outputs, read via fs below.
6
+ // @dependency ../../fixtures/*.json
5
7
  // Copied from the build output for the contract `Benchmarking` in noir-contracts
6
8
  export function getBenchmarkContractArtifact() {
7
9
  const path = getPathToFixture('Benchmarking.test.json');
@@ -15,6 +15,7 @@ import { Gas } from '../gas/gas.js';
15
15
  import { GasFees } from '../gas/gas_fees.js';
16
16
  import { GasSettings } from '../gas/gas_settings.js';
17
17
  import type { MerkleTreeReadOperations } from '../interfaces/merkle_tree_operations.js';
18
+ import { InboxBucketRef } from '../messaging/inbox_bucket.js';
18
19
  import { BlockProposal } from '../p2p/block_proposal.js';
19
20
  import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
20
21
  import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
@@ -115,11 +116,11 @@ export interface MakeBlockProposalOptions {
115
116
  signer?: Secp256k1Signer;
116
117
  blockHeader?: BlockHeader;
117
118
  indexWithinCheckpoint?: IndexWithinCheckpoint;
118
- inHash?: Fr;
119
119
  archiveRoot?: Fr;
120
120
  txHashes?: TxHash[];
121
121
  txs?: Tx[];
122
122
  signatureContext?: CoordinationSignatureContext;
123
+ bucketRef?: InboxBucketRef;
123
124
  }
124
125
  export interface MakeCheckpointProposalOptions {
125
126
  signer?: Secp256k1Signer;
@@ -133,6 +134,7 @@ export interface MakeCheckpointProposalOptions {
133
134
  indexWithinCheckpoint?: IndexWithinCheckpoint;
134
135
  txHashes?: TxHash[];
135
136
  txs?: Tx[];
137
+ bucketRef?: InboxBucketRef;
136
138
  };
137
139
  }
138
140
  export declare const makeAndSignCommitteeAttestationsAndSigners: (attestationsAndSigners: CommitteeAttestationsAndSigners, signer?: Secp256k1Signer) => Signature;
@@ -167,4 +169,4 @@ export declare const makeCheckpointAttestationFromCheckpoint: (checkpoint: Check
167
169
  * Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
168
170
  */
169
171
  export declare const makeCheckpointAttestationFromBlock: (block: L2Block, attesterSigner?: Secp256k1Signer | undefined, proposerSigner?: Secp256k1Signer | undefined) => CheckpointAttestation;
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFD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
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFJNUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl6RCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,6 @@ import { PartialPrivateTailPublicInputsForPublic, PrivateKernelTailCircuitPublic
29
29
  import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulated_data.js';
30
30
  import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
31
31
  import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
32
- import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
33
32
  import { BlockProposal } from '../p2p/block_proposal.js';
34
33
  import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
35
34
  import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
@@ -263,11 +262,9 @@ export async function mockCheckpointAndMessages(checkpointNumber, { startBlockNu
263
262
  });
264
263
  }
265
264
  const messages = blocksAndMessages[0].messages;
266
- const inHash = computeInHashFromL1ToL2Messages(messages);
267
265
  const firstBlockLastArchive = blocksAndMessages[0].block.header.lastArchive;
268
266
  const checkpoint = await Checkpoint.random(checkpointNumber, {
269
267
  numBlocks: 0,
270
- inHash,
271
268
  ...options,
272
269
  ...globals,
273
270
  lastArchive: firstBlockLastArchive,
@@ -336,7 +333,6 @@ export const makeAndSignCommitteeAttestationsAndSigners = (attestationsAndSigner
336
333
  export const makeBlockProposal = (options)=>{
337
334
  const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
338
335
  const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
339
- const inHash = options?.inHash ?? Fr.random();
340
336
  const archiveRoot = options?.archiveRoot ?? Fr.random();
341
337
  const txHashes = options?.txHashes ?? [
342
338
  0,
@@ -349,7 +345,8 @@ export const makeBlockProposal = (options)=>{
349
345
  const txs = options?.txs;
350
346
  const signer = options?.signer ?? Secp256k1Signer.random();
351
347
  const signatureContext = options?.signatureContext ?? TEST_COORDINATION_SIGNATURE_CONTEXT;
352
- return BlockProposal.createProposalFromSigner(blockHeader, CheckpointNumber(1), indexWithinCheckpoint, inHash, archiveRoot, txHashes, txs, signatureContext, (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)), (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)));
348
+ const bucketRef = options?.bucketRef;
349
+ return BlockProposal.createProposalFromSigner(blockHeader, CheckpointNumber(1), indexWithinCheckpoint, archiveRoot, txHashes, txs, signatureContext, (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)), (typedData, _context)=>Promise.resolve(signTypedData(signer, typedData)), bucketRef);
353
350
  };
354
351
  export const makeCheckpointProposal = async (options)=>{
355
352
  const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
@@ -361,12 +358,12 @@ export const makeCheckpointProposal = async (options)=>{
361
358
  const lastBlockProposal = options?.lastBlock ? await makeBlockProposal({
362
359
  blockHeader: options.lastBlock.blockHeader,
363
360
  indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4),
364
- inHash: checkpointHeader.inHash,
365
361
  archiveRoot,
366
362
  txHashes: options.lastBlock.txHashes,
367
363
  txs: options.lastBlock.txs,
368
364
  signer,
369
- signatureContext
365
+ signatureContext,
366
+ bucketRef: options.lastBlock.bucketRef
370
367
  }) : undefined;
371
368
  return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, CheckpointNumber(1), feeAssetPriceModifier, lastBlockProposal, signatureContext, (typedData)=>Promise.resolve(signTypedData(signer, typedData)));
372
369
  };
@@ -76,10 +76,13 @@ export declare class StateReference {
76
76
  publicDataTree: `0x${string}`;
77
77
  };
78
78
  /**
79
- * Validates the trees in world state have the expected number of leaves (multiple of number of insertions per tx)
79
+ * Validates the partial-state trees have the expected number of leaves (multiple of number of insertions per tx).
80
+ *
81
+ * The L1-to-L2 message tree is not checked: it grows by real message counts at compact (unaligned)
82
+ * indices, so its next-available leaf index is no longer a multiple of any per-block subtree size.
80
83
  */
81
84
  validate(): void;
82
85
  [inspect.custom](): string;
83
86
  equals(other: this): boolean;
84
87
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfcmVmZXJlbmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvc3RhdGVfcmVmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckU7O0dBRUc7QUFDSCxxQkFBYSxjQUFjO0lBRXZCLDZDQUE2QztJQUN0QyxpQkFBaUIsRUFBRSxzQkFBc0I7SUFDaEQsMENBQTBDO0lBQ25DLE9BQU8sRUFBRSxxQkFBcUI7SUFKdkM7SUFDRSw2Q0FBNkM7SUFDdEMsaUJBQWlCLEVBQUUsc0JBQXNCO0lBQ2hELDBDQUEwQztJQUNuQyxPQUFPLEVBQUUscUJBQXFCLEVBQ25DO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBT2hCO0lBRUQsT0FBTyxXQUVOO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyw0REFFaEQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUUzQztJQUdELFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBUWpDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FRZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsY0FBYyxDQUcvRDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBRyxjQUFjLENBTzVEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxjQUFjLENBRTdCO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxjQUFjLENBRTlCO0lBRUQsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FFakc7SUFFRCxPQUFPLElBQUksT0FBTyxDQUVqQjtJQUVELFNBQVM7Ozs7O01BT1I7SUFFRDs7T0FFRztJQUNJLFFBQVEsU0FnQmQ7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FPZjtJQUVNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FFbEM7Q0FDRiJ9
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVfcmVmZXJlbmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvc3RhdGVfcmVmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFckU7O0dBRUc7QUFDSCxxQkFBYSxjQUFjO0lBRXZCLDZDQUE2QztJQUN0QyxpQkFBaUIsRUFBRSxzQkFBc0I7SUFDaEQsMENBQTBDO0lBQ25DLE9BQU8sRUFBRSxxQkFBcUI7SUFKdkM7SUFDRSw2Q0FBNkM7SUFDdEMsaUJBQWlCLEVBQUUsc0JBQXNCO0lBQ2hELDBDQUEwQztJQUNuQyxPQUFPLEVBQUUscUJBQXFCLEVBQ25DO0lBRUosTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBT2hCO0lBRUQsT0FBTyxXQUVOO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyw0REFFaEQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUUzQztJQUdELFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBUWpDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FRZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsY0FBYyxDQUcvRDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsR0FBRyxjQUFjLENBTzVEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxjQUFjLENBRTdCO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxjQUFjLENBRTlCO0lBRUQsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FFakc7SUFFRCxPQUFPLElBQUksT0FBTyxDQUVqQjtJQUVELFNBQVM7Ozs7O01BT1I7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsU0FXZDtJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQU9mO0lBRU0sTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEdBQUcsT0FBTyxDQUVsQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"state_reference.d.ts","sourceRoot":"","sources":["../../src/tx/state_reference.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,qBAAa,cAAc;IAEvB,6CAA6C;IACtC,iBAAiB,EAAE,sBAAsB;IAChD,0CAA0C;IACnC,OAAO,EAAE,qBAAqB;IAJvC;IACE,6CAA6C;IACtC,iBAAiB,EAAE,sBAAsB;IAChD,0CAA0C;IACnC,OAAO,EAAE,qBAAqB,EACnC;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAOhB;IAED,OAAO,WAEN;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,4DAEhD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAE3C;IAGD,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAQjC,QAAQ,IAAI,EAAE,EAAE,CAQf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,CAG/D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,cAAc,CAO5D;IAED,MAAM,CAAC,KAAK,IAAI,cAAc,CAE7B;IAED,MAAM,CAAC,MAAM,IAAI,cAAc,CAE9B;IAED,KAAK,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAEjG;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,SAAS;;;;;MAOR;IAED;;OAEG;IACI,QAAQ,SAgBd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAOf;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAElC;CACF"}
1
+ {"version":3,"file":"state_reference.d.ts","sourceRoot":"","sources":["../../src/tx/state_reference.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,qBAAa,cAAc;IAEvB,6CAA6C;IACtC,iBAAiB,EAAE,sBAAsB;IAChD,0CAA0C;IACnC,OAAO,EAAE,qBAAqB;IAJvC;IACE,6CAA6C;IACtC,iBAAiB,EAAE,sBAAsB;IAChD,0CAA0C;IACnC,OAAO,EAAE,qBAAqB,EACnC;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAOhB;IAED,OAAO,WAEN;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,4DAEhD;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,kBAE3C;IAGD,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAQjC,QAAQ,IAAI,EAAE,EAAE,CAQf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,CAG/D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,cAAc,CAO5D;IAED,MAAM,CAAC,KAAK,IAAI,cAAc,CAE7B;IAED,MAAM,CAAC,MAAM,IAAI,cAAc,CAE9B;IAED,KAAK,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAEjG;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,SAAS;;;;;MAOR;IAED;;;;;OAKG;IACI,QAAQ,SAWd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAOf;IAEM,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAElC;CACF"}
@@ -1,5 +1,5 @@
1
1
  var _computedKey;
2
- import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, STATE_REFERENCE_LENGTH } from '@aztec/constants';
2
+ import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, STATE_REFERENCE_LENGTH } from '@aztec/constants';
3
3
  import { BufferReader, BufferSink, FieldReader, serializeToSink } from '@aztec/foundation/serialize';
4
4
  import { inspect } from 'util';
5
5
  import { z } from 'zod';
@@ -85,11 +85,11 @@ _computedKey = inspect.custom;
85
85
  };
86
86
  }
87
87
  /**
88
- * Validates the trees in world state have the expected number of leaves (multiple of number of insertions per tx)
88
+ * Validates the partial-state trees have the expected number of leaves (multiple of number of insertions per tx).
89
+ *
90
+ * The L1-to-L2 message tree is not checked: it grows by real message counts at compact (unaligned)
91
+ * indices, so its next-available leaf index is no longer a multiple of any per-block subtree size.
89
92
  */ validate() {
90
- if (this.l1ToL2MessageTree.nextAvailableLeafIndex % NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP !== 0) {
91
- throw new Error(`Invalid L1 to L2 message tree next available leaf index ${this.l1ToL2MessageTree.nextAvailableLeafIndex} (must be a multiple of ${NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP})`);
92
- }
93
93
  if (this.partial.noteHashTree.nextAvailableLeafIndex % MAX_NOTE_HASHES_PER_TX !== 0) {
94
94
  throw new Error(`Invalid note hash tree next available leaf index ${this.partial.noteHashTree.nextAvailableLeafIndex} (must be a multiple of ${MAX_NOTE_HASHES_PER_TX})`);
95
95
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "6.0.0-nightly.20260810",
3
+ "version": "6.0.0-nightly.20260821",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -92,13 +92,13 @@
92
92
  },
93
93
  "dependencies": {
94
94
  "@aws-sdk/client-s3": "^3.892.0",
95
- "@aztec/bb.js": "6.0.0-nightly.20260810",
96
- "@aztec/blob-lib": "6.0.0-nightly.20260810",
97
- "@aztec/constants": "6.0.0-nightly.20260810",
98
- "@aztec/ethereum": "6.0.0-nightly.20260810",
99
- "@aztec/foundation": "6.0.0-nightly.20260810",
100
- "@aztec/l1-artifacts": "6.0.0-nightly.20260810",
101
- "@aztec/noir-noirc_abi": "6.0.0-nightly.20260810",
95
+ "@aztec/bb.js": "6.0.0-nightly.20260819",
96
+ "@aztec/blob-lib": "6.0.0-nightly.20260821",
97
+ "@aztec/constants": "6.0.0-nightly.20260821",
98
+ "@aztec/ethereum": "6.0.0-nightly.20260821",
99
+ "@aztec/foundation": "6.0.0-nightly.20260821",
100
+ "@aztec/l1-artifacts": "6.0.0-nightly.20260819",
101
+ "@aztec/noir-noirc_abi": "6.0.0-nightly.20260819",
102
102
  "@google-cloud/storage": "^7.15.0",
103
103
  "axios": "^1.15.1",
104
104
  "json-stringify-deterministic": "1.0.12",
package/src/abi/abi.ts CHANGED
@@ -47,6 +47,11 @@ export const AbiValueSchema: z.ZodType<AbiValue> = z.discriminatedUnion('kind',
47
47
  }),
48
48
  ]);
49
49
 
50
+ export const AbiNamedValueSchema: z.ZodType<AbiNamedValue> = z.object({
51
+ name: z.string(),
52
+ value: AbiValueSchema,
53
+ });
54
+
50
55
  export type TypedStructFieldValue<T> = { name: string; value: T };
51
56
 
52
57
  export interface StructValue {
@@ -389,7 +394,7 @@ export interface ContractArtifact {
389
394
  /** The outputs of the contract. */
390
395
  outputs: {
391
396
  structs: Record<string, AbiType[]>;
392
- globals: Record<string, AbiValue[]>;
397
+ globals: Record<string, AbiNamedValue[]>;
393
398
  };
394
399
 
395
400
  /** Storage layout */
@@ -418,7 +423,7 @@ export const ContractArtifactSchema = zodFor<ContractArtifact>()(
418
423
  }
419
424
  return structs;
420
425
  }),
421
- globals: z.record(z.string(), z.array(AbiValueSchema)),
426
+ globals: z.record(z.string(), z.array(AbiNamedValueSchema)),
422
427
  }),
423
428
  storageLayout: z.record(z.string(), z.object({ slot: schemas.Fr })),
424
429
  fileMap: z.record(
@@ -249,14 +249,14 @@ function hasKernelFunctionInputs(params: ABIParameter[]): boolean {
249
249
  /**
250
250
  * Generates a storage layout for the contract artifact.
251
251
  * @param contractName - The name of the compiled Noir contract.
252
- * @param globals - The normalized globals exported by the contract.
252
+ * @param globals - The globals exported by the contract.
253
253
  * @returns A storage layout for the contract.
254
254
  */
255
- function getStorageLayout(contractName: string, globals: Record<string, AbiValue[]>) {
255
+ function getStorageLayout(contractName: string, globals: Record<string, AbiNamedValue[]>) {
256
256
  // If another contract is imported by the main contract, its storage layout its going to also show up here.
257
257
  // The layout export includes the contract name, so here we can find the one that belongs to the current one and
258
258
  // ignore the rest.
259
- const storageExports = globals.storage ?? [];
259
+ const storageExports = globals.storage?.map(entry => entry.value) ?? [];
260
260
  const storageForContract = storageExports.find((storageExport): storageExport is StructValue => {
261
261
  if (storageExport.kind !== 'struct') {
262
262
  return false;
@@ -286,20 +286,19 @@ function getStorageLayout(contractName: string, globals: Record<string, AbiValue
286
286
  }, {});
287
287
  }
288
288
 
289
- function isAbiNamedValue(value: AbiNamedValue | AbiValue): value is AbiNamedValue {
290
- return 'name' in value;
291
- }
292
-
293
- function normalizeContractOutputs(outputs: NoirCompiledContract['outputs']): ContractArtifact['outputs'] {
294
- return {
295
- structs: outputs.structs,
296
- globals: Object.fromEntries(
297
- Object.entries(outputs.globals).map(([tag, values]) => [
298
- tag,
299
- values.map(value => (isAbiNamedValue(value) ? value.value : value)),
300
- ]),
301
- ),
302
- };
289
+ /**
290
+ * Returns the globals exported by the contract under an `#[abi(tag)]` attribute, keyed by global name.
291
+ * An unknown tag yields an empty record. Throws if two globals under the same tag share a name.
292
+ */
293
+ export function getGlobalsByTag(artifact: ContractArtifact, tag: string): Record<string, AbiValue> {
294
+ const globals = new Map<string, AbiValue>();
295
+ for (const entry of artifact.outputs.globals[tag] ?? []) {
296
+ if (globals.has(entry.name)) {
297
+ throw new Error(`Duplicate global '${entry.name}' exported under #[abi(${tag})] in contract ${artifact.name}`);
298
+ }
299
+ globals.set(entry.name, entry.value);
300
+ }
301
+ return Object.fromEntries(globals);
303
302
  }
304
303
 
305
304
  /**
@@ -312,7 +311,6 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif
312
311
  if (!contract.transpiled) {
313
312
  throw new Error("Contract's public bytecode has not been transpiled");
314
313
  }
315
- const outputs = normalizeContractOutputs(contract.outputs);
316
314
  return ContractArtifactSchema.parse({
317
315
  name: contract.name,
318
316
  aztecVersion: contract.aztec_version,
@@ -320,8 +318,8 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif
320
318
  nonDispatchPublicFunctions: contract.functions
321
319
  .filter(f => !retainBytecode(f))
322
320
  .map(f => generateFunctionAbi(f, contract)),
323
- outputs,
324
- storageLayout: getStorageLayout(contract.name, outputs.globals),
321
+ outputs: contract.outputs,
322
+ storageLayout: getStorageLayout(contract.name, contract.outputs.globals),
325
323
  fileMap: contract.file_map,
326
324
  });
327
325
  } catch (err) {
@@ -336,7 +334,6 @@ function generateContractArtifact(contract: NoirCompiledContract): ContractArtif
336
334
  */
337
335
  function generateContractArtifactForPublic(contract: NoirCompiledContract): ContractArtifact {
338
336
  try {
339
- const outputs = normalizeContractOutputs(contract.outputs);
340
337
  return ContractArtifactSchema.parse({
341
338
  name: contract.name,
342
339
  aztecVersion: contract.aztec_version,
@@ -344,8 +341,8 @@ function generateContractArtifactForPublic(contract: NoirCompiledContract): Cont
344
341
  nonDispatchPublicFunctions: contract.functions
345
342
  .filter(f => !retainBytecode(f))
346
343
  .map(f => generateFunctionAbi(f, contract)),
347
- outputs,
348
- storageLayout: getStorageLayout(contract.name, outputs.globals),
344
+ outputs: contract.outputs,
345
+ storageLayout: getStorageLayout(contract.name, contract.outputs.globals),
349
346
  fileMap: contract.file_map,
350
347
  });
351
348
  } catch (err) {
package/src/avm/avm.ts CHANGED
@@ -1281,6 +1281,9 @@ export class PublicTxResult {
1281
1281
  // For the proving request.
1282
1282
  public hints: AvmExecutionHints | undefined,
1283
1283
  public publicInputs: AvmCircuitPublicInputs | undefined,
1284
+ // Simulation statistics keyed by stat name, with stringified values.
1285
+ // E.g. "total_instructions_executed" -> AVM instructions executed by the tx, across all enqueued and nested calls.
1286
+ public stats: Record<string, string> = {},
1284
1287
  ) {}
1285
1288
 
1286
1289
  static empty() {
@@ -1309,12 +1312,17 @@ export class PublicTxResult {
1309
1312
  publicTxEffect: PublicTxEffect.schema,
1310
1313
  callStackMetadata: z.union([CallStackMetadata.schema.array(), NestedProcessReturnValues.schema.array()]),
1311
1314
  logs: NullishToUndefined(DebugLog.schema.array()),
1315
+ // Missing/null coalesces to an empty map.
1316
+ stats: z
1317
+ .record(z.string(), z.string())
1318
+ .nullish()
1319
+ .transform(v => v ?? {}),
1312
1320
  // For the proving request.
1313
1321
  publicInputs: NullishToUndefined(AvmCircuitPublicInputs.schema),
1314
1322
  hints: NullishToUndefined(AvmExecutionHints.schema),
1315
1323
  })
1316
1324
  .transform(
1317
- ({ gasUsed, revertCode, publicTxEffect, callStackMetadata, logs, hints, publicInputs }) =>
1325
+ ({ gasUsed, revertCode, publicTxEffect, callStackMetadata, logs, hints, publicInputs, stats }) =>
1318
1326
  new PublicTxResult(
1319
1327
  gasUsed,
1320
1328
  revertCode as RevertCode,
@@ -1323,6 +1331,7 @@ export class PublicTxResult {
1323
1331
  logs,
1324
1332
  hints,
1325
1333
  publicInputs,
1334
+ stats,
1326
1335
  ),
1327
1336
  );
1328
1337
  }
@@ -1343,6 +1352,7 @@ export class PublicTxResult {
1343
1352
  obj.logs?.map(DebugLog.fromPlainObject),
1344
1353
  obj.hints ? AvmExecutionHints.fromPlainObject(obj.hints) : undefined,
1345
1354
  obj.publicInputs ? AvmCircuitPublicInputs.fromPlainObject(obj.publicInputs) : undefined,
1355
+ obj.stats ?? {},
1346
1356
  );
1347
1357
  }
1348
1358
 
@@ -116,7 +116,6 @@ export class L2Block {
116
116
  }
117
117
 
118
118
  public toBlockBlobData(): BlockBlobData {
119
- const isFirstBlock = this.indexWithinCheckpoint === 0;
120
119
  return {
121
120
  blockEndMarker: {
122
121
  numTxs: this.body.txEffects.length,
@@ -134,7 +133,8 @@ export class L2Block {
134
133
  noteHashRoot: this.header.state.partial.noteHashTree.root,
135
134
  nullifierRoot: this.header.state.partial.nullifierTree.root,
136
135
  publicDataRoot: this.header.state.partial.publicDataTree.root,
137
- l1ToL2MessageRoot: isFirstBlock ? this.header.state.l1ToL2MessageTree.root : undefined,
136
+ // Every block carries its own post-bundle l1-to-l2 message tree root.
137
+ l1ToL2MessageRoot: this.header.state.l1ToL2MessageTree.root,
138
138
  txs: this.body.toTxBlobData(),
139
139
  };
140
140
  }
@@ -155,7 +155,6 @@ export class L2Block {
155
155
  * @param txsPerBlock - The number of transactions to include in the block.
156
156
  * @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
157
157
  * @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
158
- * @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
159
158
  * @returns The L2 block.
160
159
  */
161
160
  static async random(
@@ -457,19 +457,16 @@ export enum L2BlockSourceEvents {
457
457
 
458
458
  /**
459
459
  * Aggregate event emitted once per committed archiver sync pass that mutated local state. Carries the chain tips
460
- * before and after the pass, and the blocks added during it. Consumers compare `fromTips` and `toTips` to learn what
461
- * moved; there is no separate `changed` section.
460
+ * before and after the pass; consumers compare `fromTips` and `toTips` to learn what moved, and read any data they
461
+ * need from the source itself.
462
462
  *
463
463
  * This is an optimization signal that lets a block stream reconcile immediately on an archiver update rather than
464
464
  * waiting for its next poll. Polling remains the correctness fallback, so a missed event only affects latency.
465
- * `blocksAdded` are hydrated blocks already in hand from the sync pass, so a triggered sync that is caught up to
466
- * `fromTips` can reuse them (and `toTips`) instead of re-reading the store.
467
465
  */
468
466
  export type L2BlockSourceUpdatedEvent = {
469
467
  type: 'l2BlockSourceUpdated';
470
468
  fromTips: L2Tips;
471
469
  toTips: L2Tips;
472
- blocksAdded: readonly L2Block[];
473
470
  };
474
471
 
475
472
  export type L2BlockProvenEvent = {