@aztec/stdlib 3.0.0-nightly.20250917 → 3.0.0-nightly.20250919

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 (234) hide show
  1. package/dest/avm/avm.d.ts +6 -0
  2. package/dest/avm/avm.d.ts.map +1 -1
  3. package/dest/avm/avm_circuit_public_inputs.d.ts +6 -1
  4. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  5. package/dest/avm/avm_circuit_public_inputs.js +11 -6
  6. package/dest/avm/avm_proving_request.d.ts +7 -0
  7. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  8. package/dest/block/body.d.ts +4 -1
  9. package/dest/block/body.d.ts.map +1 -1
  10. package/dest/block/body.js +16 -5
  11. package/dest/block/index.d.ts +1 -0
  12. package/dest/block/index.d.ts.map +1 -1
  13. package/dest/block/index.js +1 -0
  14. package/dest/block/l2_block.d.ts +8 -5
  15. package/dest/block/l2_block.d.ts.map +1 -1
  16. package/dest/block/l2_block.js +14 -7
  17. package/dest/block/l2_block_code_to_purge.d.ts +3 -14
  18. package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
  19. package/dest/block/l2_block_code_to_purge.js +23 -13
  20. package/dest/block/l2_block_header.d.ts +100 -0
  21. package/dest/block/l2_block_header.d.ts.map +1 -0
  22. package/dest/block/l2_block_header.js +146 -0
  23. package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
  24. package/dest/block/published_l2_block.d.ts +2 -2
  25. package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
  26. package/dest/block/test/l2_tips_store_test_suite.js +1 -3
  27. package/dest/interfaces/block-builder.d.ts +2 -2
  28. package/dest/interfaces/block-builder.d.ts.map +1 -1
  29. package/dest/interfaces/epoch-prover.d.ts +26 -9
  30. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  31. package/dest/interfaces/proving-job.d.ts +233 -125
  32. package/dest/interfaces/proving-job.d.ts.map +1 -1
  33. package/dest/interfaces/proving-job.js +120 -102
  34. package/dest/interfaces/pxe.d.ts +192 -90
  35. package/dest/interfaces/pxe.d.ts.map +1 -1
  36. package/dest/interfaces/pxe.js +5 -31
  37. package/dest/interfaces/server_circuit_prover.d.ts +31 -27
  38. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  39. package/dest/interfaces/validator.d.ts +3 -2
  40. package/dest/interfaces/validator.d.ts.map +1 -1
  41. package/dest/kernel/private_circuit_public_inputs.d.ts +4 -4
  42. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  43. package/dest/kernel/private_circuit_public_inputs.js +7 -7
  44. package/dest/kernel/private_context_inputs.d.ts +2 -2
  45. package/dest/kernel/private_context_inputs.d.ts.map +1 -1
  46. package/dest/kernel/private_context_inputs.js +4 -4
  47. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +1 -1
  48. package/dest/p2p/consensus_payload.d.ts +7 -6
  49. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  50. package/dest/p2p/consensus_payload.js +7 -6
  51. package/dest/parity/index.d.ts +2 -3
  52. package/dest/parity/index.d.ts.map +1 -1
  53. package/dest/parity/index.js +2 -3
  54. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +6 -6
  55. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  56. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +5 -5
  57. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  58. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  59. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  60. package/dest/proofs/proof_data.d.ts +4 -3
  61. package/dest/proofs/proof_data.d.ts.map +1 -1
  62. package/dest/proofs/proof_data.js +2 -2
  63. package/dest/proofs/proving_request_type.d.ts +16 -11
  64. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  65. package/dest/proofs/proving_request_type.js +16 -11
  66. package/dest/rollup/base_rollup_hints.d.ts +12 -3
  67. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  68. package/dest/rollup/base_rollup_hints.js +11 -5
  69. package/dest/rollup/block_constant_data.d.ts +20 -6
  70. package/dest/rollup/block_constant_data.d.ts.map +1 -1
  71. package/dest/rollup/block_constant_data.js +15 -7
  72. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
  73. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  74. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
  75. package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
  76. package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
  77. package/dest/rollup/block_rollup_public_inputs.js +85 -0
  78. package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
  79. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  80. package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
  81. package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
  82. package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
  83. package/dest/rollup/checkpoint_constant_data.js +55 -0
  84. package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +11 -12
  85. package/dest/rollup/checkpoint_header.d.ts.map +1 -0
  86. package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
  87. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
  88. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  89. package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
  90. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +105 -0
  91. package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
  92. package/dest/rollup/checkpoint_rollup_public_inputs.js +105 -0
  93. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
  94. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  95. package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
  96. package/dest/rollup/epoch_constant_data.d.ts +19 -2
  97. package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
  98. package/dest/rollup/epoch_constant_data.js +20 -7
  99. package/dest/rollup/index.d.ts +14 -12
  100. package/dest/rollup/index.d.ts.map +1 -1
  101. package/dest/rollup/index.js +14 -12
  102. package/dest/rollup/{private_base_rollup_inputs.d.ts → private_tx_base_rollup_private_inputs.d.ts} +7 -7
  103. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  104. package/dest/rollup/{private_base_rollup_inputs.js → private_tx_base_rollup_private_inputs.js} +6 -6
  105. package/dest/rollup/{public_base_rollup_inputs.d.ts → public_tx_base_rollup_private_inputs.d.ts} +7 -7
  106. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  107. package/dest/rollup/{public_base_rollup_inputs.js → public_tx_base_rollup_private_inputs.js} +6 -6
  108. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  109. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  110. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  111. package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
  112. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  113. package/dest/rollup/root_rollup_public_inputs.js +71 -0
  114. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  115. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  116. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  117. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +12 -12
  118. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  119. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +14 -14
  120. package/dest/stats/stats.d.ts +1 -1
  121. package/dest/stats/stats.d.ts.map +1 -1
  122. package/dest/tests/factories.d.ts +28 -68
  123. package/dest/tests/factories.d.ts.map +1 -1
  124. package/dest/tests/factories.js +90 -115
  125. package/dest/tests/mocks.d.ts +3 -2
  126. package/dest/tests/mocks.d.ts.map +1 -1
  127. package/dest/tests/mocks.js +3 -3
  128. package/dest/tx/block_header.d.ts +12 -13
  129. package/dest/tx/block_header.d.ts.map +1 -1
  130. package/dest/tx/block_header.js +16 -21
  131. package/dest/tx/global_variables.d.ts.map +1 -1
  132. package/dest/tx/global_variables.js +0 -1
  133. package/dest/tx/index.d.ts +0 -1
  134. package/dest/tx/index.d.ts.map +1 -1
  135. package/dest/tx/index.js +0 -1
  136. package/dest/tx/private_execution_result.d.ts +2 -2
  137. package/dest/tx/private_execution_result.d.ts.map +1 -1
  138. package/dest/tx/private_execution_result.js +3 -3
  139. package/dest/tx/tx_constant_data.d.ts +4 -4
  140. package/dest/tx/tx_constant_data.d.ts.map +1 -1
  141. package/dest/tx/tx_constant_data.js +6 -6
  142. package/dest/tx/tx_effect.d.ts +0 -3
  143. package/dest/tx/tx_effect.d.ts.map +1 -1
  144. package/dest/tx/tx_effect.js +2 -7
  145. package/package.json +8 -8
  146. package/src/avm/avm_circuit_public_inputs.ts +10 -0
  147. package/src/block/body.ts +23 -6
  148. package/src/block/index.ts +1 -0
  149. package/src/block/l2_block.ts +18 -8
  150. package/src/block/l2_block_code_to_purge.ts +30 -31
  151. package/src/block/l2_block_header.ts +232 -0
  152. package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
  153. package/src/block/test/l2_tips_store_test_suite.ts +1 -2
  154. package/src/interfaces/block-builder.ts +2 -6
  155. package/src/interfaces/epoch-prover.ts +35 -11
  156. package/src/interfaces/proving-job.ts +199 -123
  157. package/src/interfaces/pxe.ts +3 -138
  158. package/src/interfaces/server_circuit_prover.ts +83 -52
  159. package/src/interfaces/validator.ts +3 -2
  160. package/src/kernel/private_circuit_public_inputs.ts +5 -5
  161. package/src/kernel/private_context_inputs.ts +2 -2
  162. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +1 -1
  163. package/src/p2p/consensus_payload.ts +8 -7
  164. package/src/parity/index.ts +2 -3
  165. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +6 -6
  166. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  167. package/src/proofs/proof_data.ts +5 -8
  168. package/src/proofs/proving_request_type.ts +14 -8
  169. package/src/rollup/base_rollup_hints.ts +9 -1
  170. package/src/rollup/block_constant_data.ts +13 -3
  171. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
  172. package/src/rollup/block_rollup_public_inputs.ts +123 -0
  173. package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
  174. package/src/rollup/checkpoint_constant_data.ts +84 -0
  175. package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +16 -17
  176. package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
  177. package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +26 -52
  178. package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
  179. package/src/rollup/epoch_constant_data.ts +32 -8
  180. package/src/rollup/index.ts +14 -12
  181. package/src/rollup/{private_base_rollup_inputs.ts → private_tx_base_rollup_private_inputs.ts} +9 -9
  182. package/src/rollup/{public_base_rollup_inputs.ts → public_tx_base_rollup_private_inputs.ts} +9 -9
  183. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  184. package/src/rollup/{root_rollup.ts → root_rollup_public_inputs.ts} +8 -104
  185. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  186. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +12 -12
  187. package/src/stats/stats.ts +18 -12
  188. package/src/tests/factories.ts +144 -199
  189. package/src/tests/mocks.ts +6 -13
  190. package/src/tx/block_header.ts +17 -32
  191. package/src/tx/global_variables.ts +0 -1
  192. package/src/tx/index.ts +0 -1
  193. package/src/tx/private_execution_result.ts +3 -3
  194. package/src/tx/tx_constant_data.ts +4 -4
  195. package/src/tx/tx_effect.ts +2 -7
  196. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  197. package/dest/parity/root_parity_input.d.ts +0 -52
  198. package/dest/parity/root_parity_input.d.ts.map +0 -1
  199. package/dest/parity/root_parity_input.js +0 -50
  200. package/dest/parity/root_parity_inputs.d.ts +0 -37
  201. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  202. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  203. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  204. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
  205. package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
  206. package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
  207. package/dest/rollup/block_root_rollup.d.ts +0 -283
  208. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  209. package/dest/rollup/block_root_rollup.js +0 -306
  210. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
  211. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
  212. package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
  213. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  214. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  215. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  216. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  217. package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
  218. package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
  219. package/dest/rollup/previous_rollup_block_data.js +0 -37
  220. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  221. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  222. package/dest/rollup/previous_rollup_data.js +0 -37
  223. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  224. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  225. package/dest/rollup/root_rollup.d.ts +0 -106
  226. package/dest/rollup/root_rollup.d.ts.map +0 -1
  227. package/dest/rollup/root_rollup.js +0 -147
  228. package/dest/tx/proposed_block_header.d.ts.map +0 -1
  229. package/src/parity/root_parity_input.ts +0 -71
  230. package/src/rollup/block_root_rollup.ts +0 -380
  231. package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
  232. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  233. package/src/rollup/previous_rollup_block_data.ts +0 -48
  234. package/src/rollup/previous_rollup_data.ts +0 -48
@@ -1,11 +1,11 @@
1
1
  import { BlobAccumulatorPublicInputs, FinalBlobAccumulatorPublicInputs } from '@aztec/blob-lib';
2
- import { makeBatchedBlobAccumulator, makeBlockBlobPublicInputs, makeSpongeBlob } from '@aztec/blob-lib/testing';
3
- import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AZTEC_MAX_EPOCH_DURATION, BLOBS_PER_BLOCK, CIVC_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FIELDS_PER_BLOB, FIXED_DA_GAS, FIXED_L2_GAS, GeneratorIndex, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, 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_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_PUBLIC_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_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, PUBLIC_LOG_SIZE_IN_FIELDS, RECURSIVE_PROOF_LENGTH, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
2
+ import { makeBatchedBlobAccumulator, makeSpongeBlob } from '@aztec/blob-lib/testing';
3
+ import { ARCHIVE_HEIGHT, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, AZTEC_MAX_EPOCH_DURATION, CIVC_PROOF_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FIXED_DA_GAS, FIXED_L2_GAS, GeneratorIndex, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, 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_PROTOCOL_CONTRACTS, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MAX_PUBLIC_LOGS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_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, PUBLIC_LOG_SIZE_IN_FIELDS, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, VK_TREE_HEIGHT } from '@aztec/constants';
4
4
  import { makeHalfFullTuple, makeTuple } from '@aztec/foundation/array';
5
5
  import { compact, padArrayEnd } from '@aztec/foundation/collection';
6
6
  import { SchnorrSignature, poseidon2HashWithSeparator, sha256 } from '@aztec/foundation/crypto';
7
7
  import { EthAddress } from '@aztec/foundation/eth-address';
8
- import { BLS12Point, Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
8
+ import { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
9
9
  import { MembershipWitness } from '@aztec/foundation/trees';
10
10
  import { FunctionSelector } from '../abi/function_selector.js';
11
11
  import { ContractStorageRead } from '../avm/contract_storage_read.js';
@@ -15,6 +15,7 @@ import { PublicDataHint } from '../avm/public_data_hint.js';
15
15
  import { PublicDataRead } from '../avm/public_data_read.js';
16
16
  import { PublicDataWrite } from '../avm/public_data_write.js';
17
17
  import { AztecAddress } from '../aztec-address/index.js';
18
+ import { L2BlockHeader } from '../block/index.js';
18
19
  import { SerializableContractInstance, computeContractClassId, computePublicBytecodeCommitment } from '../contract/index.js';
19
20
  import { Gas, GasFees, GasSettings } from '../gas/index.js';
20
21
  import { computeCalldataHash } from '../hash/hash.js';
@@ -35,30 +36,29 @@ import { ContractClassLogFields } from '../logs/index.js';
35
36
  import { PrivateLog } from '../logs/private_log.js';
36
37
  import { PublicLog } from '../logs/public_log.js';
37
38
  import { CountedL2ToL1Message, L2ToL1Message, ScopedL2ToL1Message } from '../messaging/l2_to_l1_message.js';
38
- import { BaseParityInputs } from '../parity/base_parity_inputs.js';
39
+ import { ParityBasePrivateInputs } from '../parity/parity_base_private_inputs.js';
39
40
  import { ParityPublicInputs } from '../parity/parity_public_inputs.js';
40
- import { RootParityInput } from '../parity/root_parity_input.js';
41
- import { RootParityInputs } from '../parity/root_parity_inputs.js';
41
+ import { ParityRootPrivateInputs } from '../parity/parity_root_private_inputs.js';
42
+ import { ProofData } from '../proofs/index.js';
42
43
  import { Proof } from '../proofs/proof.js';
43
- import { ProofData } from '../proofs/proof_data.js';
44
44
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
45
45
  import { makeRecursiveProof } from '../proofs/recursive_proof.js';
46
46
  import { AvmProofData } from '../rollup/avm_proof_data.js';
47
- import { BaseOrMergeRollupPublicInputs } from '../rollup/base_or_merge_rollup_public_inputs.js';
48
47
  import { PrivateBaseRollupHints, PublicBaseRollupHints } from '../rollup/base_rollup_hints.js';
49
- import { BlockMergeRollupInputs } from '../rollup/block_merge_rollup.js';
50
- import { BlockRootOrBlockMergePublicInputs, FeeRecipient } from '../rollup/block_root_or_block_merge_public_inputs.js';
51
- import { BlockRootRollupBlobData, BlockRootRollupData, BlockRootRollupInputs, SingleTxBlockRootRollupInputs } from '../rollup/block_root_rollup.js';
52
- import { EmptyBlockRootRollupInputs } from '../rollup/empty_block_root_rollup_inputs.js';
48
+ import { BlockConstantData } from '../rollup/block_constant_data.js';
49
+ import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
50
+ import { BlockRollupPublicInputs } from '../rollup/block_rollup_public_inputs.js';
51
+ import { BlockRootFirstRollupPrivateInputs, BlockRootSingleTxRollupPrivateInputs } from '../rollup/block_root_rollup_private_inputs.js';
52
+ import { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
53
+ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
54
+ import { CheckpointRollupPublicInputs, FeeRecipient } from '../rollup/checkpoint_rollup_public_inputs.js';
53
55
  import { EpochConstantData } from '../rollup/epoch_constant_data.js';
54
- import { BlockConstantData } from '../rollup/index.js';
55
- import { MergeRollupInputs } from '../rollup/merge_rollup.js';
56
- import { PreviousRollupBlockData } from '../rollup/previous_rollup_block_data.js';
57
- import { PreviousRollupData } from '../rollup/previous_rollup_data.js';
58
- import { PrivateBaseRollupInputs } from '../rollup/private_base_rollup_inputs.js';
59
- import { PublicBaseRollupInputs } from '../rollup/public_base_rollup_inputs.js';
60
- import { RootRollupInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
56
+ import { PrivateTxBaseRollupPrivateInputs } from '../rollup/private_tx_base_rollup_private_inputs.js';
57
+ import { PublicTxBaseRollupPrivateInputs } from '../rollup/public_tx_base_rollup_private_inputs.js';
58
+ import { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
61
59
  import { PrivateBaseStateDiffHints } from '../rollup/state_diff_hints.js';
60
+ import { TxMergeRollupPrivateInputs } from '../rollup/tx_merge_rollup_private_inputs.js';
61
+ import { TxRollupPublicInputs } from '../rollup/tx_rollup_public_inputs.js';
62
62
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
63
63
  import { MerkleTreeId } from '../trees/merkle_tree_id.js';
64
64
  import { NullifierLeaf, NullifierLeafPreimage } from '../trees/nullifier_leaf.js';
@@ -239,7 +239,7 @@ export function makePrivateToPublicKernelCircuitPublicInputs(seed = 1) {
239
239
  return new PrivateToRollupKernelCircuitPublicInputs(makeTxConstantData(seed + 0x100), makePrivateToRollupAccumulatedData(seed, fullAccumulatedData), makeGas(seed + 0x600), makeAztecAddress(seed + 0x700), BigInt(seed + 0x800));
240
240
  }
241
241
  function makeAvmCircuitPublicInputs(seed = 1) {
242
- return new AvmCircuitPublicInputs(makeGlobalVariables(seed), makeTreeSnapshots(seed + 0x10), makeGas(seed + 0x20), makeGasSettings(), makeGasFees(seed + 0x30), makeAztecAddress(seed + 0x40), makePublicCallRequestArrayLengths(seed + 0x40), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x100), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x200), makePublicCallRequest(seed + 0x300), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x400), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x410), makePrivateToAvmAccumulatedData(seed + 0x500), makePrivateToAvmAccumulatedData(seed + 0x600), makeTreeSnapshots(seed + 0x700), makeGas(seed + 0x750), makeAvmAccumulatedDataArrayLengths(seed + 0x800), makeAvmAccumulatedData(seed + 0x800), fr(seed + 0x900), false);
242
+ return new AvmCircuitPublicInputs(makeGlobalVariables(seed), fr(seed + 0x100), makeTreeSnapshots(seed + 0x10), makeGas(seed + 0x20), makeGasSettings(), makeGasFees(seed + 0x30), makeAztecAddress(seed + 0x40), makePublicCallRequestArrayLengths(seed + 0x40), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x100), makeTuple(MAX_ENQUEUED_CALLS_PER_TX, makePublicCallRequest, seed + 0x200), makePublicCallRequest(seed + 0x300), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x400), makePrivateToAvmAccumulatedDataArrayLengths(seed + 0x410), makePrivateToAvmAccumulatedData(seed + 0x500), makePrivateToAvmAccumulatedData(seed + 0x600), makeTreeSnapshots(seed + 0x700), makeGas(seed + 0x750), makeAvmAccumulatedDataArrayLengths(seed + 0x800), makeAvmAccumulatedData(seed + 0x800), fr(seed + 0x900), false);
243
243
  }
244
244
  function makeSiblingPath(seed, size) {
245
245
  return makeTuple(size, fr, seed);
@@ -339,7 +339,7 @@ function makeClaimedLengthArray(arraySize, makeItem, seed, length = arraySize) {
339
339
  contractClassLogsHashes: makeClaimedLengthArray(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeCountedLogHash, seed + 0xa00),
340
340
  startSideEffectCounter: fr(seed + 0x849),
341
341
  endSideEffectCounter: fr(seed + 0x850),
342
- historicalHeader: makeHeader(seed + 0xd00, undefined),
342
+ anchorBlockHeader: makeHeader(seed + 0xd00, undefined),
343
343
  txContext: makeTxContext(seed + 0x1400),
344
344
  isFeePayer: false
345
345
  });
@@ -357,10 +357,10 @@ export function makeGlobalVariables(seed = 1, overrides = {}) {
357
357
  ...compact(overrides)
358
358
  });
359
359
  }
360
- export function makeGasFees(seed = 1) {
360
+ function makeGasFees(seed = 1) {
361
361
  return new GasFees(seed, seed + 1);
362
362
  }
363
- export function makeFeeRecipient(seed = 1) {
363
+ function makeFeeRecipient(seed = 1) {
364
364
  return new FeeRecipient(EthAddress.fromField(fr(seed)), fr(seed + 1));
365
365
  }
366
366
  /**
@@ -400,95 +400,42 @@ export function makeFeeRecipient(seed = 1) {
400
400
  return new SchnorrSignature(Buffer.alloc(SchnorrSignature.SIZE, seed));
401
401
  }
402
402
  function makeBlockConstantData(seed = 1, globalVariables) {
403
- return new BlockConstantData(makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), fr(seed + 0x300), fr(seed + 0x400), globalVariables ?? makeGlobalVariables(seed + 0x500));
403
+ return new BlockConstantData(makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), fr(seed + 0x300), fr(seed + 0x400), globalVariables ?? makeGlobalVariables(seed + 0x500), fr(seed + 0x600));
404
+ }
405
+ function makeCheckpointConstantData(seed = 1) {
406
+ return new CheckpointConstantData(fr(seed), fr(seed + 1), fr(seed + 2), fr(seed + 3), fr(seed + 4), fr(seed + 5), makeEthAddress(seed + 6), makeAztecAddress(seed + 7), makeGasFees(seed + 8));
407
+ }
408
+ function makeEpochConstantData(seed = 1) {
409
+ return new EpochConstantData(fr(seed), fr(seed + 1), fr(seed + 2), fr(seed + 3), fr(seed + 4));
404
410
  }
405
411
  /**
406
412
  * Makes arbitrary base or merge rollup circuit public inputs.
407
413
  * @param seed - The seed to use for generating the base rollup circuit public inputs.
408
414
  * @param blockNumber - The block number to use for generating the base rollup circuit public inputs.
409
415
  * @returns A base or merge rollup circuit public inputs.
410
- */ export function makeBaseOrMergeRollupPublicInputs(seed = 0, globalVariables = undefined) {
411
- return new BaseOrMergeRollupPublicInputs(1, makeBlockConstantData(seed + 0x200, globalVariables), makePartialStateReference(seed + 0x300), makePartialStateReference(seed + 0x400), makeSpongeBlob(seed + 0x500), makeSpongeBlob(seed + 0x600), fr(seed + 0x901), fr(seed + 0x902), fr(seed + 0x903));
412
- }
413
- function makeEpochConstantData(seed = 1) {
414
- return new EpochConstantData(fr(seed), fr(seed + 1), fr(seed + 2));
416
+ */ export function makeTxRollupPublicInputs(seed = 0, globalVariables = undefined) {
417
+ return new TxRollupPublicInputs(1, makeBlockConstantData(seed + 0x200, globalVariables), makePartialStateReference(seed + 0x300), makePartialStateReference(seed + 0x400), makeSpongeBlob(seed + 0x500), makeSpongeBlob(seed + 0x600), fr(seed + 0x901), fr(seed + 0x902), fr(seed + 0x903));
415
418
  }
416
419
  /**
417
420
  * Makes arbitrary block merge or block root rollup circuit public inputs.
418
421
  * @param seed - The seed to use for generating the block merge or block root rollup circuit public inputs.
419
422
  * @param blockNumber - The block number to use for generating the block merge or block root rollup circuit public inputs.
420
423
  * @returns A block merge or block root rollup circuit public inputs.
421
- */ export function makeBlockRootOrBlockMergeRollupPublicInputs(seed = 0, globalVariables = undefined) {
422
- return new BlockRootOrBlockMergePublicInputs(makeEpochConstantData(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeAppendOnlyTreeSnapshot(seed + 0x300), globalVariables ?? makeGlobalVariables(seed + 0x400), globalVariables ?? makeGlobalVariables(seed + 0x500), fr(seed + 0x600), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x650), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x700), makeBlockBlobPublicInputs(seed));
423
- }
424
- /**
425
- * Makes arbitrary previous rollup data.
426
- * @param seed - The seed to use for generating the previous rollup data.
427
- * @param globalVariables - The global variables to use when generating the previous rollup data.
428
- * @returns A previous rollup data.
429
- */ export function makePreviousRollupData(seed = 0, globalVariables = undefined) {
430
- return new PreviousRollupData(makeBaseOrMergeRollupPublicInputs(seed, globalVariables), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, seed + 0x50), makeVkData(seed + 0x100));
431
- }
432
- /**
433
- * Makes arbitrary previous rollup block data.
434
- * @param seed - The seed to use for generating the previous rollup block data.
435
- * @param globalVariables - The global variables to use when generating the previous rollup block data.
436
- * @returns A previous rollup block data.
437
- */ export function makePreviousRollupBlockData(seed = 0, globalVariables = undefined) {
438
- return new PreviousRollupBlockData(makeBlockRootOrBlockMergeRollupPublicInputs(seed, globalVariables), makeRecursiveProof(NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, seed + 0x50), makeVkData(seed + 0x100));
439
- }
440
- /**
441
- * Makes root rollup inputs.
442
- * @param seed - The seed to use for generating the root rollup inputs.
443
- * @param globalVariables - The global variables to use.
444
- * @returns A root rollup inputs.
445
- */ export function makeRootRollupInputs(seed = 0, globalVariables) {
446
- return new RootRollupInputs([
447
- makePreviousRollupBlockData(seed, globalVariables),
448
- makePreviousRollupBlockData(seed + 0x1000, globalVariables)
449
- ]);
424
+ */ export function makeBlockRollupPublicInputs(seed = 0) {
425
+ 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 + 0x810), BigInt(seed + 0x820), fr(seed + 0x830), fr(seed + 0x840), fr(seed + 0x850), fr(seed + 0x860));
450
426
  }
451
- function makeBlockRootRollupData(seed = 0) {
452
- return new BlockRootRollupData(makeRootParityInput(NESTED_RECURSIVE_PROOF_LENGTH, seed + 0x2000), makeTuple(L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, fr, 0x2100), makeTuple(ARCHIVE_HEIGHT, fr, 0x2200), makeTuple(ARCHIVE_HEIGHT, fr, 0x2300), makeHeader(seed + 0x2400), BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(makeBatchedBlobAccumulator(seed + 0x2500)), makeBatchedBlobAccumulator(seed + 0x2600).finalBlobChallenges, fr(seed + 0x2700));
453
- }
454
- function makeBlockRootRollupBlobData(seed = 0) {
455
- return new BlockRootRollupBlobData(makeTuple(FIELDS_PER_BLOB * BLOBS_PER_BLOCK, fr, 0x2500), makeTuple(BLOBS_PER_BLOCK, ()=>BLS12Point.random()), fr(seed + 0x2700));
456
- }
457
- /**
458
- * Makes block root rollup inputs.
459
- * @param seed - The seed to use for generating the root rollup inputs.
460
- * @param globalVariables - The global variables to use.
461
- * @returns A block root rollup inputs.
462
- */ export function makeBlockRootRollupInputs(seed = 0, globalVariables) {
463
- return new BlockRootRollupInputs([
464
- makePreviousRollupData(seed, globalVariables),
465
- makePreviousRollupData(seed + 0x1000, globalVariables)
466
- ], makeBlockRootRollupData(seed + 0x2000), makeBlockRootRollupBlobData(seed + 0x4000));
467
- }
468
- export function makeSingleTxBlockRootRollupInputs(seed = 0, globalVariables) {
469
- return new SingleTxBlockRootRollupInputs([
470
- makePreviousRollupData(seed, globalVariables)
471
- ], makeBlockRootRollupData(seed + 0x2000), makeBlockRootRollupBlobData(seed + 0x4000));
472
- }
473
- /**
474
- * Makes empty block root rollup inputs.
475
- * @param seed - The seed to use for generating the root rollup inputs.
476
- * @param globalVariables - The global variables to use.
477
- * @returns A block root rollup inputs.
478
- */ export function makeEmptyBlockRootRollupInputs(seed = 0, globalVariables) {
479
- return new EmptyBlockRootRollupInputs(makeBlockRootRollupData(seed + 0x1000), makeBlockConstantData(0x2500, globalVariables));
480
- }
481
- export function makeRootParityInput(proofSize, seed = 0) {
482
- return new RootParityInput(makeRecursiveProof(proofSize, seed), VerificationKeyAsFields.makeFake(seed + 0x100), makeTuple(VK_TREE_HEIGHT, fr, 0x200), makeParityPublicInputs(seed + 0x300));
427
+ export function makeCheckpointRollupPublicInputs(seed = 0) {
428
+ const startBlobAccumulator = makeBatchedBlobAccumulator(seed);
429
+ return new CheckpointRollupPublicInputs(makeEpochConstantData(seed), makeAppendOnlyTreeSnapshot(seed + 0x100), makeAppendOnlyTreeSnapshot(seed + 0x200), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x300), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x700), BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(startBlobAccumulator), BlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(makeBatchedBlobAccumulator(seed + 1)), startBlobAccumulator.finalBlobChallenges);
483
430
  }
484
431
  export function makeParityPublicInputs(seed = 0) {
485
432
  return new ParityPublicInputs(new Fr(BigInt(seed + 0x200)), new Fr(BigInt(seed + 0x300)), new Fr(BigInt(seed + 0x400)));
486
433
  }
487
- export function makeBaseParityInputs(seed = 0) {
488
- return new BaseParityInputs(makeTuple(NUM_MSGS_PER_BASE_PARITY, fr, seed + 0x3000), new Fr(seed + 0x4000));
434
+ export function makeParityBasePrivateInputs(seed = 0) {
435
+ return new ParityBasePrivateInputs(makeTuple(NUM_MSGS_PER_BASE_PARITY, fr, seed + 0x3000), new Fr(seed + 0x4000));
489
436
  }
490
- export function makeRootParityInputs(seed = 0) {
491
- return new RootParityInputs(makeTuple(NUM_BASE_PARITY_PER_ROOT_PARITY, ()=>makeRootParityInput(RECURSIVE_PROOF_LENGTH), seed + 0x4100));
437
+ export function makeParityRootPrivateInputs(seed = 0) {
438
+ return new ParityRootPrivateInputs(makeTuple(NUM_BASE_PARITY_PER_ROOT_PARITY, ()=>makeProofData(seed, makeParityPublicInputs)));
492
439
  }
493
440
  /**
494
441
  * Makes root rollup public inputs.
@@ -496,7 +443,7 @@ export function makeRootParityInputs(seed = 0) {
496
443
  * @param blockNumber - The block number to use in the global variables of a header.
497
444
  * @returns A root rollup public inputs.
498
445
  */ export function makeRootRollupPublicInputs(seed = 0) {
499
- return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x300), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x500), fr(seed + 0x700), fr(seed + 0x701), fr(seed + 0x702), fr(seed + 0x703), fr(seed + 0x704), FinalBlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(makeBatchedBlobAccumulator(seed)));
446
+ return new RootRollupPublicInputs(fr(seed + 0x100), fr(seed + 0x200), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>fr(seed), 0x300), makeTuple(AZTEC_MAX_EPOCH_DURATION, ()=>makeFeeRecipient(seed), 0x500), makeEpochConstantData(seed + 0x600), FinalBlobAccumulatorPublicInputs.fromBatchedBlobAccumulator(makeBatchedBlobAccumulator(seed)));
500
447
  }
501
448
  /**
502
449
  * Makes content commitment
@@ -508,8 +455,8 @@ export function makeRootParityInputs(seed = 0) {
508
455
  */ export function makeHeader(seed = 0, blockNumber = undefined, slotNumber = undefined, overrides = {}) {
509
456
  return BlockHeader.from({
510
457
  lastArchive: makeAppendOnlyTreeSnapshot(seed + 0x100),
511
- contentCommitment: makeContentCommitment(seed + 0x200),
512
- state: makeStateReference(seed + 0x600),
458
+ state: makeStateReference(seed + 0x200),
459
+ spongeBlobHash: fr(seed + 0x300),
513
460
  globalVariables: makeGlobalVariables(seed += 0x700, {
514
461
  ...blockNumber ? {
515
462
  blockNumber
@@ -523,6 +470,28 @@ export function makeRootParityInputs(seed = 0) {
523
470
  ...overrides
524
471
  });
525
472
  }
473
+ export function makeL2BlockHeader(seed = 0, blockNumber, slotNumber, overrides = {}) {
474
+ return new L2BlockHeader(makeAppendOnlyTreeSnapshot(seed + 0x100), overrides?.contentCommitment ?? makeContentCommitment(seed + 0x200), overrides?.state ?? makeStateReference(seed + 0x600), makeGlobalVariables(seed += 0x700, {
475
+ ...blockNumber ? {
476
+ blockNumber
477
+ } : {},
478
+ ...slotNumber ? {
479
+ slotNumber: new Fr(slotNumber)
480
+ } : {}
481
+ }), new Fr(seed + 0x800), new Fr(seed + 0x900), new Fr(seed + 0xa00));
482
+ }
483
+ export function makeCheckpointHeader(seed = 0) {
484
+ return CheckpointHeader.from({
485
+ lastArchiveRoot: fr(seed + 0x100),
486
+ contentCommitment: makeContentCommitment(seed + 0x200),
487
+ slotNumber: new Fr(seed + 0x300),
488
+ timestamp: BigInt(seed + 0x400),
489
+ coinbase: makeEthAddress(seed + 0x500),
490
+ feeRecipient: makeAztecAddress(seed + 0x600),
491
+ gasFees: makeGasFees(seed + 0x700),
492
+ totalManaUsed: fr(seed + 0x800)
493
+ });
494
+ }
526
495
  /**
527
496
  * Makes arbitrary state reference.
528
497
  * @param seed - The seed to use for generating the state reference.
@@ -555,24 +524,29 @@ function makeScopedL2ToL1Message(seed = 1) {
555
524
  */ export function makePartialStateReference(seed = 0) {
556
525
  return new PartialStateReference(makeAppendOnlyTreeSnapshot(MAX_NOTE_HASHES_PER_TX * seed), makeAppendOnlyTreeSnapshot(MAX_NULLIFIERS_PER_TX * (seed + 1)), makeAppendOnlyTreeSnapshot(MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX * (seed + 2)));
557
526
  }
558
- /**
559
- * Makes arbitrary merge rollup inputs.
560
- * @param seed - The seed to use for generating the merge rollup inputs.
561
- * @returns A merge rollup inputs.
562
- */ export function makeMergeRollupInputs(seed = 0) {
563
- return new MergeRollupInputs([
564
- makePreviousRollupData(seed),
565
- makePreviousRollupData(seed + 0x1000)
527
+ export function makeTxMergeRollupPrivateInputs(seed = 0) {
528
+ return new TxMergeRollupPrivateInputs([
529
+ makeProofData(seed, makeTxRollupPublicInputs),
530
+ makeProofData(seed + 0x1000, makeTxRollupPublicInputs)
566
531
  ]);
567
532
  }
533
+ export function makeBlockRootFirstRollupPrivateInputs(seed = 0) {
534
+ return new BlockRootFirstRollupPrivateInputs(makeProofData(seed, makeParityPublicInputs), [
535
+ makeProofData(seed + 0x1000, makeTxRollupPublicInputs),
536
+ makeProofData(seed + 0x2000, makeTxRollupPublicInputs)
537
+ ], makeAppendOnlyTreeSnapshot(seed + 0x3000), makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH), makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT));
538
+ }
539
+ export function makeBlockRootSingleTxRollupPrivateInputs(seed = 0) {
540
+ return new BlockRootSingleTxRollupPrivateInputs(makeProofData(seed + 0x1000, makeTxRollupPublicInputs), makeSiblingPath(seed + 0x4000, ARCHIVE_HEIGHT));
541
+ }
568
542
  /**
569
543
  * Makes arbitrary block merge rollup inputs.
570
544
  * @param seed - The seed to use for generating the merge rollup inputs.
571
545
  * @returns A block merge rollup inputs.
572
- */ export function makeBlockMergeRollupInputs(seed = 0) {
573
- return new BlockMergeRollupInputs([
574
- makePreviousRollupBlockData(seed),
575
- makePreviousRollupBlockData(seed + 0x1000)
546
+ */ export function makeBlockMergeRollupPrivateInputs(seed = 0) {
547
+ return new BlockMergeRollupPrivateInputs([
548
+ makeProofData(seed, makeBlockRollupPublicInputs),
549
+ makeProofData(seed + 0x1000, makeBlockRollupPublicInputs)
576
550
  ]);
577
551
  }
578
552
  /**
@@ -651,11 +625,12 @@ function makePublicBaseRollupHints(seed = 1) {
651
625
  startSpongeBlob: makeSpongeBlob(seed),
652
626
  lastArchive: makeAppendOnlyTreeSnapshot(seed + 0x1000),
653
627
  archiveRootMembershipWitness: makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x2000),
654
- contractClassLogsFields: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x3000)
628
+ contractClassLogsFields: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x3000),
629
+ proverId: fr(seed + 0x4000)
655
630
  });
656
631
  }
657
- export function makePrivateBaseRollupInputs(seed = 0) {
658
- return PrivateBaseRollupInputs.from({
632
+ export function makePrivateTxBaseRollupPrivateInputs(seed = 0) {
633
+ return PrivateTxBaseRollupPrivateInputs.from({
659
634
  hidingKernelProofData: makeProofData(seed, makePrivateToRollupKernelCircuitPublicInputs, CIVC_PROOF_LENGTH),
660
635
  hints: makePrivateBaseRollupHints(seed + 0x100)
661
636
  });
@@ -663,11 +638,11 @@ export function makePrivateBaseRollupInputs(seed = 0) {
663
638
  function makeAvmProofData(seed = 1) {
664
639
  return new AvmProofData(makeAvmCircuitPublicInputs(seed), makeRecursiveProof(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, seed + 0x100), makeVkData(seed + 0x200));
665
640
  }
666
- export function makePublicBaseRollupInputs(seed = 0) {
641
+ export function makePublicTxBaseRollupPrivateInputs(seed = 0) {
667
642
  const publicTubeProofData = makeProofData(seed, makePrivateToPublicKernelCircuitPublicInputs, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH);
668
643
  const avmProofData = makeAvmProofData(seed + 0x100);
669
644
  const hints = makePublicBaseRollupHints(seed + 0x200);
670
- return PublicBaseRollupInputs.from({
645
+ return PublicTxBaseRollupPrivateInputs.from({
671
646
  publicTubeProofData,
672
647
  avmProofData,
673
648
  hints
@@ -935,7 +910,7 @@ export function makeAvmProtocolContractDerivedAddressesHint(seed = 0) {
935
910
  header ??= db?.getInitialHeader() ?? makeHeader(seed);
936
911
  feePayer ??= await AztecAddress.random();
937
912
  const txConstantData = TxConstantData.empty();
938
- txConstantData.historicalHeader = header;
913
+ txConstantData.anchorBlockHeader = header;
939
914
  txConstantData.txContext.chainId = chainId;
940
915
  txConstantData.txContext.version = version;
941
916
  txConstantData.txContext.gasSettings = gasSettings;
@@ -2,6 +2,7 @@ import { Secp256k1Signer } from '@aztec/foundation/crypto';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import type { ContractArtifact } from '../abi/abi.js';
4
4
  import { AztecAddress } from '../aztec-address/index.js';
5
+ import { L2BlockHeader } from '../block/index.js';
5
6
  import { L2Block } from '../block/l2_block.js';
6
7
  import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
7
8
  import { PublishedL2Block } from '../block/published_l2_block.js';
@@ -11,7 +12,7 @@ import { ExtendedNote, UniqueNote } from '../note/extended_note.js';
11
12
  import { BlockAttestation } from '../p2p/block_attestation.js';
12
13
  import { BlockProposal } from '../p2p/block_proposal.js';
13
14
  import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
14
- import { BlockHeader, StateReference, Tx } from '../tx/index.js';
15
+ import { StateReference, Tx } from '../tx/index.js';
15
16
  import { TxSimulationResult } from '../tx/simulated_tx.js';
16
17
  import { TxHash } from '../tx/tx_hash.js';
17
18
  export declare const randomTxHash: () => TxHash;
@@ -43,7 +44,7 @@ export declare const randomDeployedContract: () => Promise<{
43
44
  }>;
44
45
  export interface MakeConsensusPayloadOptions {
45
46
  signer?: Secp256k1Signer;
46
- header?: BlockHeader;
47
+ header?: L2BlockHeader;
47
48
  archive?: Fr;
48
49
  stateReference?: StateReference;
49
50
  txHashes?: TxHash[];
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAe,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAS7C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,WAAW,EAIX,cAAc,EACd,EAAE,EACH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAiC,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,YAAY,QAAO,MAAyB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAU,6DAMtC,OAAO,CAAC,YAAY,CAAM,0BAQ5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,wEAOpC,OAAO,CAAC,UAAU,CAAM,wBAS1B,CAAC;AAEF,eAAO,MAAM,MAAM,GACjB,aAAQ,EACR,8QAaG;IACD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,UAAU,CAAC,EAAE,EAAE,CAAC;IAChB,wBAAwB,CAAC,EAAE,EAAE,CAAC;CAC1B,gBAiEP,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,aAAQ,EAAE,OAAM,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAM,gBAC+B,CAAC;AAmBjH,eAAO,MAAM,eAAe,GAAU,aAAQ,gCAgB7C,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,gBAUxC,CAAC;AAEH,eAAO,MAAM,iCAAiC,GAC5C,OAAM;IAAE,eAAe,CAAC,EAAE,EAAE,CAAA;CAAO,EACnC,UAAU,YAAY,KACrB,OAAO,CAAC,2BAA2B,CAUrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;EAIlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;CACZ;AAqBD,eAAO,MAAM,0CAA0C,GACrD,wBAAwB,+BAA+B,EACvD,SAAQ,eAA0C,0CAOnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,2BAA2B,KAAG,aAOzE,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAAI,UAAU,2BAA2B,KAAG,gBAM5E,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,EAAE,SAAS,eAAe,KAAG,gBAQxF,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;CAAO,GACzC,OAAO,CAAC,gBAAgB,CAAC,CAc3B"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ import { PublicSimulationOutput } from '../tx/public_simulation_output.js';
28
28
  import { TxSimulationResult, accumulatePrivateReturnValues } from '../tx/simulated_tx.js';
29
29
  import { TxEffect } from '../tx/tx_effect.js';
30
30
  import { TxHash } from '../tx/tx_hash.js';
31
- import { makeGas, makeGlobalVariables, makeHeader, makePublicCallRequest } from './factories.js';
31
+ import { makeGas, makeGlobalVariables, makeL2BlockHeader, makePublicCallRequest } from './factories.js';
32
32
  export const randomTxHash = ()=>TxHash.random();
33
33
  export const randomExtendedNote = async ({ note = Note.random(), recipient = undefined, contractAddress = undefined, txHash = randomTxHash(), storageSlot = Fr.random() } = {})=>{
34
34
  return new ExtendedNote(note, recipient ?? await AztecAddress.random(), contractAddress ?? await AztecAddress.random(), storageSlot, txHash);
@@ -133,10 +133,10 @@ export const randomDeployedContract = async ()=>{
133
133
  };
134
134
  };
135
135
  const makeAndSignConsensusPayload = (domainSeparator, options)=>{
136
- const header = options?.header ?? makeHeader(1);
136
+ const header = options?.header ?? makeL2BlockHeader(1);
137
137
  const { signer = Secp256k1Signer.random(), archive = Fr.random(), stateReference = header.state } = options ?? {};
138
138
  const payload = ConsensusPayload.fromFields({
139
- header: header.toPropose(),
139
+ header: header.toCheckpointHeader(),
140
140
  archive,
141
141
  stateReference
142
142
  });
@@ -4,18 +4,19 @@ import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
4
4
  import type { FieldsOf } from '@aztec/foundation/types';
5
5
  import { inspect } from 'util';
6
6
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
7
- import { ContentCommitment } from './content_commitment.js';
8
7
  import { GlobalVariables } from './global_variables.js';
9
- import { ProposedBlockHeader } from './proposed_block_header.js';
10
8
  import { StateReference } from './state_reference.js';
11
9
  /** A header of an L2 block. */
12
10
  export declare class BlockHeader {
13
11
  /** Snapshot of archive before the block is applied. */
14
12
  lastArchive: AppendOnlyTreeSnapshot;
15
- /** Hash of the body of an L2 block. */
16
- contentCommitment: ContentCommitment;
17
13
  /** State reference. */
18
14
  state: StateReference;
15
+ /**
16
+ * Hash of the sponge blob after the tx effects of this block has been applied.
17
+ * May contain tx effects from the previous blocks in the same checkpoint.
18
+ */
19
+ spongeBlobHash: Fr;
19
20
  /** Global variables of an L2 block. */
20
21
  globalVariables: GlobalVariables;
21
22
  /** Total fees in the block, computed by the root rollup circuit */
@@ -25,10 +26,13 @@ export declare class BlockHeader {
25
26
  constructor(
26
27
  /** Snapshot of archive before the block is applied. */
27
28
  lastArchive: AppendOnlyTreeSnapshot,
28
- /** Hash of the body of an L2 block. */
29
- contentCommitment: ContentCommitment,
30
29
  /** State reference. */
31
30
  state: StateReference,
31
+ /**
32
+ * Hash of the sponge blob after the tx effects of this block has been applied.
33
+ * May contain tx effects from the previous blocks in the same checkpoint.
34
+ */
35
+ spongeBlobHash: Fr,
32
36
  /** Global variables of an L2 block. */
33
37
  globalVariables: GlobalVariables,
34
38
  /** Total fees in the block, computed by the root rollup circuit */
@@ -36,7 +40,7 @@ export declare class BlockHeader {
36
40
  /** Total mana used in the block, computed by the root rollup circuit */
37
41
  totalManaUsed: Fr);
38
42
  static get schema(): ZodFor<BlockHeader>;
39
- static getFields(fields: FieldsOf<BlockHeader>): readonly [AppendOnlyTreeSnapshot, ContentCommitment, StateReference, GlobalVariables, Fr, Fr];
43
+ static getFields(fields: FieldsOf<BlockHeader>): readonly [AppendOnlyTreeSnapshot, StateReference, Fr, GlobalVariables, Fr, Fr];
40
44
  static from(fields: FieldsOf<BlockHeader>): BlockHeader;
41
45
  getSlot(): bigint;
42
46
  getBlockNumber(): number;
@@ -55,20 +59,15 @@ export declare class BlockHeader {
55
59
  toString(): `0x${string}`;
56
60
  static fromString(str: string): BlockHeader;
57
61
  hash(): Promise<Fr>;
58
- toPropose(): ProposedBlockHeader;
59
62
  toInspect(): {
60
63
  lastArchive: `0x${string}`;
61
- contentCommitment: {
62
- blobsHash: `0x${string}`;
63
- inHash: `0x${string}`;
64
- outHash: `0x${string}`;
65
- };
66
64
  state: {
67
65
  l1ToL2MessageTree: `0x${string}`;
68
66
  noteHashTree: `0x${string}`;
69
67
  nullifierTree: `0x${string}`;
70
68
  publicDataTree: `0x${string}`;
71
69
  };
70
+ spongeBlobHash: bigint;
72
71
  globalVariables: {
73
72
  chainId: number;
74
73
  version: number;
@@ -1 +1 @@
1
- {"version":3,"file":"block_header.d.ts","sourceRoot":"","sources":["../../src/tx/block_header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,+BAA+B;AAC/B,qBAAa,WAAW;IAEpB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;;IAXxB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uCAAuC;IAChC,iBAAiB,EAAE,iBAAiB;IAC3C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IAG1B,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAWvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC;IAY9C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC;IAIzC,OAAO;IAIP,cAAc;IAId,OAAO;IAWP,QAAQ;IAIR,QAAQ,IAAI,EAAE,EAAE;IAQhB,KAAK,IAAI,WAAW;IAIpB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW;IAa7D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW;IAa1D,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAM,GAAG,WAAW;IAYtE,OAAO,IAAI,OAAO;IAWlB;;;OAGG;IACI,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAI3C,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;IAInB,SAAS,IAAI,mBAAmB;IAahC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWT,CAAC,OAAO,CAAC,MAAM,CAAC;IAgBT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAUpC"}
1
+ {"version":3,"file":"block_header.d.ts","sourceRoot":"","sources":["../../src/tx/block_header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,+BAA+B;AAC/B,qBAAa,WAAW;IAEpB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B;;;OAGG;IACI,cAAc,EAAE,EAAE;IACzB,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;;IAdxB,uDAAuD;IAChD,WAAW,EAAE,sBAAsB;IAC1C,uBAAuB;IAChB,KAAK,EAAE,cAAc;IAC5B;;;OAGG;IACI,cAAc,EAAE,EAAE;IACzB,uCAAuC;IAChC,eAAe,EAAE,eAAe;IACvC,mEAAmE;IAC5D,SAAS,EAAE,EAAE;IACpB,wEAAwE;IACjE,aAAa,EAAE,EAAE;IAG1B,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,CAWvC;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC;IAW9C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC;IAIzC,OAAO;IAIP,cAAc;IAId,OAAO;IAWP,QAAQ;IAIR,QAAQ,IAAI,EAAE,EAAE;IAQhB,KAAK,IAAI,WAAW;IAIpB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW;IAa7D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW;IAa1D,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAM,GAAG,WAAW;IAYtE,OAAO,IAAI,OAAO;IAWlB;;;OAGG;IACI,QAAQ;IAIf,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAI3C,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;IAInB,SAAS;;;;;;;;;;;;;;;;;;;;;;;IAWT,CAAC,OAAO,CAAC,MAAM,CAAC;IAcT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAUpC"}
@@ -7,21 +7,22 @@ import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
7
7
  import { inspect } from 'util';
8
8
  import { z } from 'zod';
9
9
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
10
- import { ContentCommitment } from './content_commitment.js';
11
10
  import { GlobalVariables } from './global_variables.js';
12
- import { ProposedBlockHeader } from './proposed_block_header.js';
13
11
  import { StateReference } from './state_reference.js';
14
12
  /** A header of an L2 block. */ export class BlockHeader {
15
13
  lastArchive;
16
- contentCommitment;
17
14
  state;
15
+ spongeBlobHash;
18
16
  globalVariables;
19
17
  totalFees;
20
18
  totalManaUsed;
21
- constructor(/** Snapshot of archive before the block is applied. */ lastArchive, /** Hash of the body of an L2 block. */ contentCommitment, /** State reference. */ state, /** Global variables of an L2 block. */ globalVariables, /** Total fees in the block, computed by the root rollup circuit */ totalFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed){
19
+ constructor(/** Snapshot of archive before the block is applied. */ lastArchive, /** State reference. */ state, /**
20
+ * Hash of the sponge blob after the tx effects of this block has been applied.
21
+ * May contain tx effects from the previous blocks in the same checkpoint.
22
+ */ spongeBlobHash, /** Global variables of an L2 block. */ globalVariables, /** Total fees in the block, computed by the root rollup circuit */ totalFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed){
22
23
  this.lastArchive = lastArchive;
23
- this.contentCommitment = contentCommitment;
24
24
  this.state = state;
25
+ this.spongeBlobHash = spongeBlobHash;
25
26
  this.globalVariables = globalVariables;
26
27
  this.totalFees = totalFees;
27
28
  this.totalManaUsed = totalManaUsed;
@@ -29,19 +30,18 @@ import { StateReference } from './state_reference.js';
29
30
  static get schema() {
30
31
  return z.object({
31
32
  lastArchive: AppendOnlyTreeSnapshot.schema,
32
- contentCommitment: ContentCommitment.schema,
33
33
  state: StateReference.schema,
34
+ spongeBlobHash: schemas.Fr,
34
35
  globalVariables: GlobalVariables.schema,
35
36
  totalFees: schemas.Fr,
36
37
  totalManaUsed: schemas.Fr
37
38
  }).transform(BlockHeader.from);
38
39
  }
39
40
  static getFields(fields) {
40
- // Note: The order here must match the order in the ProposedHeaderLib solidity library.
41
41
  return [
42
42
  fields.lastArchive,
43
- fields.contentCommitment,
44
43
  fields.state,
44
+ fields.spongeBlobHash,
45
45
  fields.globalVariables,
46
46
  fields.totalFees,
47
47
  fields.totalManaUsed
@@ -57,7 +57,7 @@ import { StateReference } from './state_reference.js';
57
57
  return this.globalVariables.blockNumber;
58
58
  }
59
59
  getSize() {
60
- return this.lastArchive.getSize() + this.contentCommitment.getSize() + this.state.getSize() + this.globalVariables.getSize() + this.totalFees.size + this.totalManaUsed.size;
60
+ return this.lastArchive.getSize() + this.state.getSize() + this.spongeBlobHash.size + this.globalVariables.getSize() + this.totalFees.size + this.totalManaUsed.size;
61
61
  }
62
62
  toBuffer() {
63
63
  return serializeToBuffer(...BlockHeader.getFields(this));
@@ -74,17 +74,17 @@ import { StateReference } from './state_reference.js';
74
74
  }
75
75
  static fromBuffer(buffer) {
76
76
  const reader = BufferReader.asReader(buffer);
77
- return new BlockHeader(reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(ContentCommitment), reader.readObject(StateReference), reader.readObject(GlobalVariables), reader.readObject(Fr), reader.readObject(Fr));
77
+ return new BlockHeader(reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(StateReference), reader.readObject(Fr), reader.readObject(GlobalVariables), reader.readObject(Fr), reader.readObject(Fr));
78
78
  }
79
79
  static fromFields(fields) {
80
80
  const reader = FieldReader.asReader(fields);
81
- return new BlockHeader(AppendOnlyTreeSnapshot.fromFields(reader), ContentCommitment.fromFields(reader), StateReference.fromFields(reader), GlobalVariables.fromFields(reader), reader.readField(), reader.readField());
81
+ return new BlockHeader(AppendOnlyTreeSnapshot.fromFields(reader), StateReference.fromFields(reader), reader.readField(), GlobalVariables.fromFields(reader), reader.readField(), reader.readField());
82
82
  }
83
83
  static empty(fields = {}) {
84
84
  return BlockHeader.from({
85
85
  lastArchive: AppendOnlyTreeSnapshot.empty(),
86
- contentCommitment: ContentCommitment.empty(),
87
86
  state: StateReference.empty(),
87
+ spongeBlobHash: Fr.ZERO,
88
88
  globalVariables: GlobalVariables.empty(),
89
89
  totalFees: Fr.ZERO,
90
90
  totalManaUsed: Fr.ZERO,
@@ -92,7 +92,7 @@ import { StateReference } from './state_reference.js';
92
92
  });
93
93
  }
94
94
  isEmpty() {
95
- return this.lastArchive.isEmpty() && this.contentCommitment.isEmpty() && this.state.isEmpty() && this.globalVariables.isEmpty() && this.totalFees.isZero() && this.totalManaUsed.isZero();
95
+ return this.lastArchive.isEmpty() && this.state.isEmpty() && this.spongeBlobHash.isZero() && this.globalVariables.isEmpty() && this.totalFees.isZero() && this.totalManaUsed.isZero();
96
96
  }
97
97
  /**
98
98
  * Serializes this instance into a string.
@@ -106,14 +106,11 @@ import { StateReference } from './state_reference.js';
106
106
  hash() {
107
107
  return poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
108
108
  }
109
- toPropose() {
110
- return new ProposedBlockHeader(this.lastArchive.root, this.contentCommitment, this.globalVariables.slotNumber, this.globalVariables.timestamp, this.globalVariables.coinbase, this.globalVariables.feeRecipient, this.globalVariables.gasFees, this.totalManaUsed);
111
- }
112
109
  toInspect() {
113
110
  return {
114
111
  lastArchive: this.lastArchive.root.toString(),
115
- contentCommitment: this.contentCommitment.toInspect(),
116
112
  state: this.state.toInspect(),
113
+ spongeBlobHash: this.spongeBlobHash.toBigInt(),
117
114
  globalVariables: this.globalVariables.toInspect(),
118
115
  totalFees: this.totalFees.toBigInt(),
119
116
  totalManaUsed: this.totalManaUsed.toBigInt()
@@ -122,19 +119,17 @@ import { StateReference } from './state_reference.js';
122
119
  [inspect.custom]() {
123
120
  return `Header {
124
121
  lastArchive: ${inspect(this.lastArchive)},
125
- contentCommitment.blobsHash: ${inspect(this.contentCommitment.blobsHash)},
126
- contentCommitment.inHash: ${inspect(this.contentCommitment.inHash)},
127
- contentCommitment.outHash: ${inspect(this.contentCommitment.outHash)},
128
122
  state.l1ToL2MessageTree: ${inspect(this.state.l1ToL2MessageTree)},
129
123
  state.noteHashTree: ${inspect(this.state.partial.noteHashTree)},
130
124
  state.nullifierTree: ${inspect(this.state.partial.nullifierTree)},
131
125
  state.publicDataTree: ${inspect(this.state.partial.publicDataTree)},
126
+ spongeBlobHash: ${this.spongeBlobHash},
132
127
  globalVariables: ${inspect(this.globalVariables)},
133
128
  totalFees: ${this.totalFees},
134
129
  totalManaUsed: ${this.totalManaUsed},
135
130
  }`;
136
131
  }
137
132
  equals(other) {
138
- return this.contentCommitment.equals(other.contentCommitment) && this.state.equals(other.state) && this.globalVariables.equals(other.globalVariables) && this.totalFees.equals(other.totalFees) && this.totalManaUsed.equals(other.totalManaUsed) && this.lastArchive.equals(other.lastArchive);
133
+ return this.lastArchive.equals(other.lastArchive) && this.state.equals(other.state) && this.spongeBlobHash.equals(other.spongeBlobHash) && this.globalVariables.equals(other.globalVariables) && this.totalFees.equals(other.totalFees) && this.totalManaUsed.equals(other.totalManaUsed);
139
134
  }
140
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"global_variables.d.ts","sourceRoot":"","sources":["../../src/tx/global_variables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,WAAW,EAIZ,MAAM,6BAA6B,CAAC;AACrC,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,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,qBAAa,eAAe;IAExB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,oCAAoC;IAC7B,WAAW,EAAE,MAAM;IAC1B,kCAAkC;IAC3B,UAAU,EAAE,EAAE;IACrB,iCAAiC;IAC1B,SAAS,EAAE,MAAM;IACxB,iCAAiC;IAC1B,QAAQ,EAAE,UAAU;IAC3B,+BAA+B;IACxB,YAAY,EAAE,YAAY;IACjC,wCAAwC;IACjC,OAAO,EAAE,OAAO;;IAfvB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,oCAAoC;IAC7B,WAAW,EAAE,MAAM;IAC1B,kCAAkC;IAC3B,UAAU,EAAE,EAAE;IACrB,iCAAiC;IAC1B,SAAS,EAAE,MAAM;IACxB,iCAAiC;IAC1B,QAAQ,EAAE,UAAU;IAC3B,+BAA+B;IACxB,YAAY,EAAE,YAAY;IACjC,wCAAwC;IACjC,OAAO,EAAE,OAAO;IAGzB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED,OAAO,IAAI,MAAM;IAIjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,eAAe;IAI/D,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAM,GAAG,eAAe;IAc9E,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe;IAcjE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,eAAe;IAe9D,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC;IAclD,QAAQ;IAaR,QAAQ;IAUR;;;OAGG;IACH,cAAc;;;;;;;IAUd,KAAK,IAAI,eAAe;IAIxB,OAAO,IAAI,OAAO;IAalB,SAAS;;;;;;;;;;;IAcT,CAAC,OAAO,CAAC,MAAM,CAAC;IAIT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAYpC"}
1
+ {"version":3,"file":"global_variables.d.ts","sourceRoot":"","sources":["../../src/tx/global_variables.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,WAAW,EAIZ,MAAM,6BAA6B,CAAC;AACrC,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,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,qBAAa,eAAe;IAExB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,oCAAoC;IAC7B,WAAW,EAAE,MAAM;IAC1B,kCAAkC;IAC3B,UAAU,EAAE,EAAE;IACrB,iCAAiC;IAC1B,SAAS,EAAE,MAAM;IACxB,iCAAiC;IAC1B,QAAQ,EAAE,UAAU;IAC3B,+BAA+B;IACxB,YAAY,EAAE,YAAY;IACjC,wCAAwC;IACjC,OAAO,EAAE,OAAO;;IAfvB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,gCAAgC;IACzB,OAAO,EAAE,EAAE;IAClB,oCAAoC;IAC7B,WAAW,EAAE,MAAM;IAC1B,kCAAkC;IAC3B,UAAU,EAAE,EAAE;IACrB,iCAAiC;IAC1B,SAAS,EAAE,MAAM;IACxB,iCAAiC;IAC1B,QAAQ,EAAE,UAAU;IAC3B,+BAA+B;IACxB,YAAY,EAAE,YAAY;IACjC,wCAAwC;IACjC,OAAO,EAAE,OAAO;IAGzB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAahB;IAED,OAAO,IAAI,MAAM;IAIjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,eAAe;IAI/D,MAAM,CAAC,KAAK,CAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAM,GAAG,eAAe;IAc9E,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe;IAcjE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,eAAe;IAe9D,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC;IAalD,QAAQ;IAaR,QAAQ;IAUR;;;OAGG;IACH,cAAc;;;;;;;IAUd,KAAK,IAAI,eAAe;IAIxB,OAAO,IAAI,OAAO;IAalB,SAAS;;;;;;;;;;;IAcT,CAAC,OAAO,CAAC,MAAM,CAAC;IAIT,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CAYpC"}