@aztec/stdlib 1.0.0-nightly.20250708 → 1.0.0-staging.0

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 (241) hide show
  1. package/dest/abi/decoder.d.ts.map +1 -1
  2. package/dest/abi/decoder.js +6 -3
  3. package/dest/abi/index.d.ts +0 -1
  4. package/dest/abi/index.d.ts.map +1 -1
  5. package/dest/abi/index.js +0 -1
  6. package/dest/block/l2_block.d.ts +0 -7
  7. package/dest/block/l2_block.d.ts.map +1 -1
  8. package/dest/block/l2_block.js +0 -8
  9. package/dest/block/l2_block_stream/l2_block_stream.js +1 -1
  10. package/dest/block/proposal/committee_attestation.d.ts +3 -3
  11. package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
  12. package/dest/block/proposal/committee_attestation.js +2 -41
  13. package/dest/contract/contract_instance_update.d.ts +1 -2
  14. package/dest/contract/contract_instance_update.d.ts.map +1 -1
  15. package/dest/contract/contract_instance_update.js +6 -6
  16. package/dest/contract/interfaces/contract_data_source.d.ts +2 -5
  17. package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
  18. package/dest/contract/interfaces/contract_instance_update.d.ts +8 -9
  19. package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
  20. package/dest/contract/interfaces/contract_instance_update.js +1 -1
  21. package/dest/gas/gas.d.ts +0 -1
  22. package/dest/gas/gas.d.ts.map +1 -1
  23. package/dest/gas/gas.js +0 -3
  24. package/dest/hash/hash.d.ts +1 -1
  25. package/dest/hash/hash.d.ts.map +1 -1
  26. package/dest/hash/hash.js +3 -7
  27. package/dest/interfaces/archiver.js +1 -1
  28. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  29. package/dest/interfaces/aztec-node-admin.js +1 -3
  30. package/dest/interfaces/aztec-node.d.ts +1 -1
  31. package/dest/interfaces/client.d.ts +0 -1
  32. package/dest/interfaces/client.d.ts.map +1 -1
  33. package/dest/interfaces/client.js +0 -1
  34. package/dest/interfaces/configs.d.ts +0 -10
  35. package/dest/interfaces/configs.d.ts.map +1 -1
  36. package/dest/interfaces/configs.js +1 -3
  37. package/dest/interfaces/proving-job.d.ts +17 -38
  38. package/dest/interfaces/proving-job.d.ts.map +1 -1
  39. package/dest/interfaces/proving-job.js +0 -13
  40. package/dest/interfaces/pxe.d.ts +0 -2
  41. package/dest/interfaces/pxe.d.ts.map +1 -1
  42. package/dest/interfaces/server.d.ts +1 -3
  43. package/dest/interfaces/server.d.ts.map +1 -1
  44. package/dest/interfaces/server.js +1 -3
  45. package/dest/interfaces/server_circuit_prover.d.ts +0 -2
  46. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  47. package/dest/interfaces/tx-collector.d.ts +15 -0
  48. package/dest/interfaces/tx-collector.d.ts.map +1 -0
  49. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -6
  50. package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
  51. package/dest/kernel/hints/build_note_hash_read_request_hints.js +20 -18
  52. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +10 -7
  53. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  54. package/dest/kernel/hints/build_nullifier_read_request_hints.js +32 -17
  55. package/dest/kernel/hints/build_transient_data_hints.d.ts +1 -2
  56. package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
  57. package/dest/kernel/hints/build_transient_data_hints.js +8 -7
  58. package/dest/kernel/hints/index.d.ts +1 -0
  59. package/dest/kernel/hints/index.d.ts.map +1 -1
  60. package/dest/kernel/hints/index.js +1 -0
  61. package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
  62. package/dest/kernel/hints/note_hash_read_request_hints.js +4 -4
  63. package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
  64. package/dest/kernel/hints/nullifier_read_request_hints.js +4 -4
  65. package/dest/kernel/hints/read_request_hints.d.ts +17 -17
  66. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  67. package/dest/kernel/hints/read_request_hints.js +28 -28
  68. package/dest/kernel/hints/rollup_validation_requests.d.ts +38 -0
  69. package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -0
  70. package/dest/kernel/hints/rollup_validation_requests.js +57 -0
  71. package/dest/kernel/index.d.ts +0 -1
  72. package/dest/kernel/index.d.ts.map +1 -1
  73. package/dest/kernel/index.js +0 -1
  74. package/dest/kernel/private_accumulated_data.d.ts +15 -16
  75. package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
  76. package/dest/kernel/private_accumulated_data.js +3 -3
  77. package/dest/kernel/private_circuit_public_inputs.d.ts +27 -28
  78. package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
  79. package/dest/kernel/private_circuit_public_inputs.js +20 -38
  80. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +0 -9
  81. package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
  82. package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -8
  83. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -10
  84. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  85. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +6 -9
  86. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -11
  87. package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
  88. package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +18 -20
  89. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +4 -4
  90. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
  91. package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +10 -9
  92. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +11 -11
  93. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
  94. package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +12 -11
  95. package/dest/kernel/private_validation_requests.d.ts +20 -8
  96. package/dest/kernel/private_validation_requests.d.ts.map +1 -1
  97. package/dest/kernel/private_validation_requests.js +21 -9
  98. package/dest/kernel/utils/order_and_comparison.d.ts +3 -0
  99. package/dest/kernel/utils/order_and_comparison.d.ts.map +1 -1
  100. package/dest/kernel/utils/order_and_comparison.js +19 -0
  101. package/dest/messaging/l2_to_l1_message.d.ts +0 -2
  102. package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
  103. package/dest/messaging/l2_to_l1_message.js +0 -7
  104. package/dest/p2p/block_proposal.d.ts +1 -8
  105. package/dest/p2p/block_proposal.d.ts.map +1 -1
  106. package/dest/p2p/block_proposal.js +8 -21
  107. package/dest/p2p/consensus_payload.d.ts +11 -3
  108. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  109. package/dest/p2p/consensus_payload.js +22 -13
  110. package/dest/p2p/topic_type.d.ts.map +1 -1
  111. package/dest/p2p/topic_type.js +3 -5
  112. package/dest/proofs/proving_request_type.d.ts +7 -8
  113. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  114. package/dest/proofs/proving_request_type.js +7 -8
  115. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +9 -0
  116. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
  117. package/dest/rollup/base_or_merge_rollup_public_inputs.js +8 -3
  118. package/dest/rollup/empty_block_root_rollup_inputs.d.ts +3 -2
  119. package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
  120. package/dest/rollup/empty_block_root_rollup_inputs.js +6 -3
  121. package/dest/rollup/index.d.ts +0 -1
  122. package/dest/rollup/index.d.ts.map +1 -1
  123. package/dest/rollup/index.js +0 -1
  124. package/dest/shared_mutable/scheduled_delay_change.d.ts +5 -5
  125. package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
  126. package/dest/shared_mutable/scheduled_delay_change.js +5 -5
  127. package/dest/shared_mutable/scheduled_value_change.d.ts +3 -4
  128. package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
  129. package/dest/shared_mutable/scheduled_value_change.js +7 -7
  130. package/dest/shared_mutable/shared_mutable_values.js +7 -7
  131. package/dest/stats/stats.d.ts +1 -1
  132. package/dest/stats/stats.d.ts.map +1 -1
  133. package/dest/tests/factories.d.ts +2 -0
  134. package/dest/tests/factories.d.ts.map +1 -1
  135. package/dest/tests/factories.js +25 -23
  136. package/dest/tests/mocks.d.ts.map +1 -1
  137. package/dest/tests/mocks.js +12 -14
  138. package/dest/tx/index.d.ts +1 -0
  139. package/dest/tx/index.d.ts.map +1 -1
  140. package/dest/tx/index.js +1 -0
  141. package/dest/tx/max_block_number.d.ts +54 -0
  142. package/dest/tx/max_block_number.d.ts.map +1 -0
  143. package/dest/tx/max_block_number.js +64 -0
  144. package/dest/tx/offchain_effect.d.ts.map +1 -1
  145. package/dest/tx/offchain_effect.js +0 -1
  146. package/dest/tx/private_execution_result.d.ts +2 -2
  147. package/dest/tx/private_execution_result.d.ts.map +1 -1
  148. package/dest/tx/private_execution_result.js +11 -11
  149. package/dest/tx/simulated_tx.js +1 -1
  150. package/dest/tx/tx.d.ts +2 -7
  151. package/dest/tx/tx.d.ts.map +1 -1
  152. package/dest/tx/tx.js +0 -8
  153. package/dest/tx/validator/error_texts.d.ts +1 -1
  154. package/dest/tx/validator/error_texts.d.ts.map +1 -1
  155. package/dest/tx/validator/error_texts.js +1 -1
  156. package/dest/types/shared.d.ts +8 -0
  157. package/dest/types/shared.d.ts.map +1 -1
  158. package/dest/types/shared.js +8 -0
  159. package/dest/versioning/versioning.d.ts.map +1 -1
  160. package/dest/vks/verification_key.d.ts +0 -1
  161. package/dest/vks/verification_key.d.ts.map +1 -1
  162. package/dest/vks/verification_key.js +0 -5
  163. package/package.json +7 -7
  164. package/src/abi/decoder.ts +6 -3
  165. package/src/abi/index.ts +0 -1
  166. package/src/block/l2_block.ts +0 -16
  167. package/src/block/l2_block_stream/l2_block_stream.ts +1 -1
  168. package/src/block/proposal/committee_attestation.ts +3 -49
  169. package/src/contract/contract_instance_update.ts +6 -7
  170. package/src/contract/interfaces/contract_data_source.ts +2 -5
  171. package/src/contract/interfaces/contract_instance_update.ts +3 -4
  172. package/src/gas/gas.ts +0 -4
  173. package/src/hash/hash.ts +3 -7
  174. package/src/interfaces/archiver.ts +1 -1
  175. package/src/interfaces/aztec-node-admin.ts +1 -8
  176. package/src/interfaces/aztec-node.ts +1 -1
  177. package/src/interfaces/client.ts +0 -1
  178. package/src/interfaces/configs.ts +0 -6
  179. package/src/interfaces/proving-job.ts +0 -21
  180. package/src/interfaces/pxe.ts +0 -2
  181. package/src/interfaces/server.ts +1 -3
  182. package/src/interfaces/server_circuit_prover.ts +0 -9
  183. package/src/interfaces/tx-collector.ts +17 -0
  184. package/src/kernel/hints/build_note_hash_read_request_hints.ts +30 -28
  185. package/src/kernel/hints/build_nullifier_read_request_hints.ts +59 -28
  186. package/src/kernel/hints/build_transient_data_hints.ts +11 -9
  187. package/src/kernel/hints/index.ts +1 -0
  188. package/src/kernel/hints/note_hash_read_request_hints.ts +16 -4
  189. package/src/kernel/hints/nullifier_read_request_hints.ts +16 -4
  190. package/src/kernel/hints/read_request_hints.ts +22 -22
  191. package/src/kernel/hints/rollup_validation_requests.ts +73 -0
  192. package/src/kernel/index.ts +0 -1
  193. package/src/kernel/private_accumulated_data.ts +23 -23
  194. package/src/kernel/private_circuit_public_inputs.ts +70 -94
  195. package/src/kernel/private_kernel_circuit_public_inputs.ts +1 -9
  196. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +4 -13
  197. package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +20 -20
  198. package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +7 -7
  199. package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +10 -16
  200. package/src/kernel/private_validation_requests.ts +50 -19
  201. package/src/kernel/utils/order_and_comparison.ts +25 -0
  202. package/src/messaging/l2_to_l1_message.ts +0 -9
  203. package/src/p2p/block_proposal.ts +5 -23
  204. package/src/p2p/consensus_payload.ts +29 -10
  205. package/src/p2p/topic_type.ts +1 -3
  206. package/src/proofs/proving_request_type.ts +0 -1
  207. package/src/rollup/base_or_merge_rollup_public_inputs.ts +8 -0
  208. package/src/rollup/empty_block_root_rollup_inputs.ts +7 -2
  209. package/src/rollup/index.ts +0 -1
  210. package/src/shared_mutable/scheduled_delay_change.ts +6 -6
  211. package/src/shared_mutable/scheduled_value_change.ts +5 -7
  212. package/src/shared_mutable/shared_mutable_values.ts +9 -9
  213. package/src/stats/stats.ts +0 -1
  214. package/src/tests/factories.ts +29 -34
  215. package/src/tests/mocks.ts +9 -7
  216. package/src/tx/index.ts +1 -0
  217. package/src/tx/max_block_number.ts +81 -0
  218. package/src/tx/offchain_effect.ts +0 -1
  219. package/src/tx/private_execution_result.ts +9 -11
  220. package/src/tx/simulated_tx.ts +2 -2
  221. package/src/tx/tx.ts +1 -14
  222. package/src/tx/validator/error_texts.ts +1 -1
  223. package/src/types/shared.ts +9 -0
  224. package/src/versioning/versioning.ts +3 -0
  225. package/src/vks/verification_key.ts +0 -6
  226. package/dest/abi/authorization_selector.d.ts +0 -52
  227. package/dest/abi/authorization_selector.d.ts.map +0 -1
  228. package/dest/abi/authorization_selector.js +0 -70
  229. package/dest/interfaces/tx_provider.d.ts +0 -24
  230. package/dest/interfaces/tx_provider.d.ts.map +0 -1
  231. package/dest/kernel/claimed_length_array.d.ts +0 -34
  232. package/dest/kernel/claimed_length_array.d.ts.map +0 -1
  233. package/dest/kernel/claimed_length_array.js +0 -58
  234. package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
  235. package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
  236. package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
  237. package/src/abi/authorization_selector.ts +0 -95
  238. package/src/interfaces/tx_provider.ts +0 -16
  239. package/src/kernel/claimed_length_array.ts +0 -104
  240. package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
  241. /package/dest/interfaces/{tx_provider.js → tx-collector.js} +0 -0
@@ -1,19 +1,25 @@
1
1
  import { MAX_KEY_VALIDATION_REQUESTS_PER_TX, MAX_NOTE_HASH_READ_REQUESTS_PER_TX, MAX_NULLIFIER_READ_REQUESTS_PER_TX } from '@aztec/constants';
2
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
2
+ import { makeTuple } from '@aztec/foundation/array';
3
+ import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
4
+ import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
5
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
4
6
  import { inspect } from 'util';
5
7
  import { ScopedKeyValidationRequestAndGenerator } from '../kernel/hints/scoped_key_validation_request_and_generator.js';
6
- import { ClaimedLengthArray, ClaimedLengthArrayFromBuffer } from './claimed_length_array.js';
7
8
  import { ScopedReadRequest } from './hints/read_request.js';
9
+ import { RollupValidationRequests } from './hints/rollup_validation_requests.js';
8
10
  import { OptionalNumber } from './utils/optional_number.js';
9
11
  /**
10
12
  * Validation requests accumulated during the execution of the transaction.
11
13
  */ export class PrivateValidationRequests {
14
+ forRollup;
12
15
  noteHashReadRequests;
13
16
  nullifierReadRequests;
14
17
  scopedKeyValidationRequestsAndGenerators;
15
18
  splitCounter;
16
19
  constructor(/**
20
+ * Validation requests that cannot be fulfilled in the current context (private or public), and must be instead be
21
+ * forwarded to the rollup for it to take care of them.
22
+ */ forRollup, /**
17
23
  * All the read requests made in this transaction.
18
24
  */ noteHashReadRequests, /**
19
25
  * All the nullifier read requests made in this transaction.
@@ -24,27 +30,32 @@ import { OptionalNumber } from './utils/optional_number.js';
24
30
  * A revertible nullifier and a non-revertible note hash will not be squashed.
25
31
  * It should be the "final" minRevertibleSideEffectCounter of a tx.
26
32
  */ splitCounter){
33
+ this.forRollup = forRollup;
27
34
  this.noteHashReadRequests = noteHashReadRequests;
28
35
  this.nullifierReadRequests = nullifierReadRequests;
29
36
  this.scopedKeyValidationRequestsAndGenerators = scopedKeyValidationRequestsAndGenerators;
30
37
  this.splitCounter = splitCounter;
31
38
  }
32
39
  getSize() {
33
- return this.noteHashReadRequests.getSize() + this.nullifierReadRequests.getSize() + this.scopedKeyValidationRequestsAndGenerators.getSize() + this.splitCounter.getSize();
40
+ return this.forRollup.getSize() + arraySerializedSizeOfNonEmpty(this.noteHashReadRequests) + arraySerializedSizeOfNonEmpty(this.nullifierReadRequests) + arraySerializedSizeOfNonEmpty(this.scopedKeyValidationRequestsAndGenerators) + this.splitCounter.getSize();
34
41
  }
35
42
  toBuffer() {
36
- return serializeToBuffer(this.noteHashReadRequests, this.nullifierReadRequests, this.scopedKeyValidationRequestsAndGenerators, this.splitCounter);
43
+ return serializeToBuffer(this.forRollup, this.noteHashReadRequests, this.nullifierReadRequests, this.scopedKeyValidationRequestsAndGenerators, this.splitCounter);
37
44
  }
38
45
  toString() {
39
46
  return bufferToHex(this.toBuffer());
40
47
  }
48
+ static fromFields(fields) {
49
+ const reader = FieldReader.asReader(fields);
50
+ return new PrivateValidationRequests(reader.readObject(RollupValidationRequests), reader.readArray(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator), reader.readObject(OptionalNumber));
51
+ }
41
52
  /**
42
53
  * Deserializes from a buffer or reader, corresponding to a write in cpp.
43
54
  * @param buffer - Buffer or reader to read from.
44
55
  * @returns Deserialized object.
45
56
  */ static fromBuffer(buffer) {
46
57
  const reader = BufferReader.asReader(buffer);
47
- return new PrivateValidationRequests(reader.readObject(ClaimedLengthArrayFromBuffer(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_TX)), reader.readObject(ClaimedLengthArrayFromBuffer(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_TX)), reader.readObject(ClaimedLengthArrayFromBuffer(ScopedKeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_TX)), reader.readObject(OptionalNumber));
58
+ return new PrivateValidationRequests(reader.readObject(RollupValidationRequests), reader.readArray(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ScopedReadRequest), reader.readArray(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator), reader.readObject(OptionalNumber));
48
59
  }
49
60
  /**
50
61
  * Deserializes from a string, corresponding to a write in cpp.
@@ -54,13 +65,14 @@ import { OptionalNumber } from './utils/optional_number.js';
54
65
  return PrivateValidationRequests.fromBuffer(hexToBuffer(str));
55
66
  }
56
67
  static empty() {
57
- return new PrivateValidationRequests(ClaimedLengthArray.empty(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_TX), ClaimedLengthArray.empty(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_TX), ClaimedLengthArray.empty(ScopedKeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_TX), OptionalNumber.empty());
68
+ return new PrivateValidationRequests(RollupValidationRequests.empty(), makeTuple(MAX_NOTE_HASH_READ_REQUESTS_PER_TX, ScopedReadRequest.empty), makeTuple(MAX_NULLIFIER_READ_REQUESTS_PER_TX, ScopedReadRequest.empty), makeTuple(MAX_KEY_VALIDATION_REQUESTS_PER_TX, ScopedKeyValidationRequestAndGenerator.empty), OptionalNumber.empty());
58
69
  }
59
70
  [inspect.custom]() {
60
71
  return `PrivateValidationRequests {
61
- noteHashReadRequests: ${inspect(this.noteHashReadRequests)},
62
- nullifierReadRequests: ${inspect(this.nullifierReadRequests)},
63
- scopedKeyValidationRequestsAndGenerators: ${inspect(this.scopedKeyValidationRequestsAndGenerators)},
72
+ forRollup: ${inspect(this.forRollup)},
73
+ noteHashReadRequests: [${this.noteHashReadRequests.filter((x)=>!x.isEmpty()).map((h)=>inspect(h)).join(', ')}],
74
+ nullifierReadRequests: [${this.nullifierReadRequests.filter((x)=>!x.isEmpty()).map((h)=>inspect(h)).join(', ')}],
75
+ scopedKeyValidationRequestsAndGenerators: [${this.scopedKeyValidationRequestsAndGenerators.filter((x)=>!x.isEmpty()).map((h)=>inspect(h)).join(', ')}],
64
76
  splitCounter: ${this.splitCounter.getSize()}
65
77
  `;
66
78
  }
@@ -1,5 +1,8 @@
1
1
  import type { Tuple } from '@aztec/foundation/serialize';
2
2
  import type { IsEmpty, Ordered } from './interfaces.js';
3
3
  export declare function countAccumulatedItems<T extends IsEmpty>(arr: T[]): number;
4
+ export declare function mergeAccumulatedData<T extends IsEmpty, N extends number>(arr0: Tuple<T, N>, arr1: Tuple<T, N>, length?: N): Tuple<T, N>;
4
5
  export declare function sortByCounter<T extends Ordered & IsEmpty, N extends number>(arr: Tuple<T, N>, ascending?: boolean): Tuple<T, N>;
6
+ export declare function isEmptyArray<T extends IsEmpty>(arr: T[]): boolean;
7
+ export declare function getNonEmptyItems<T extends IsEmpty>(arr: T[]): T[];
5
8
  //# sourceMappingURL=order_and_comparison.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"order_and_comparison.d.ts","sourceRoot":"","sources":["../../../src/kernel/utils/order_and_comparison.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAKxD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,UAUhE;AAuBD,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,EACzE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAChB,SAAS,GAAE,OAAc,GACxB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAEb"}
1
+ {"version":3,"file":"order_and_comparison.d.ts","sourceRoot":"","sources":["../../../src/kernel/utils/order_and_comparison.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAKxD,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,UAUhE;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,MAAM,EACtE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACjB,MAAM,GAAE,CAAoB,GAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAUb;AAuBD,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,EACzE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAChB,SAAS,GAAE,OAAc,GACxB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAEb;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,OAAO,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEjE"}
@@ -11,6 +11,19 @@ export function countAccumulatedItems(arr) {
11
11
  return num;
12
12
  }, 0);
13
13
  }
14
+ // Merges two arrays of length N into an array of length N.
15
+ export function mergeAccumulatedData(arr0, arr1, length = arr0.length) {
16
+ const numNonEmptyItems0 = countAccumulatedItems(arr0);
17
+ const numNonEmptyItems1 = countAccumulatedItems(arr1);
18
+ if (numNonEmptyItems0 + numNonEmptyItems1 > length) {
19
+ throw new Error('Combined non-empty items exceeded the maximum allowed.');
20
+ }
21
+ const arr = [
22
+ ...arr0
23
+ ];
24
+ arr1.slice(0, numNonEmptyItems1).forEach((item, i)=>arr[i + numNonEmptyItems0] = item);
25
+ return arr;
26
+ }
14
27
  // Sort items by a provided compare function. All empty items are padded to the right.
15
28
  function genericSort(arr, compareFn, ascending = true) {
16
29
  return [
@@ -31,3 +44,9 @@ function compareByCounter(a, b) {
31
44
  export function sortByCounter(arr, ascending = true) {
32
45
  return genericSort(arr, compareByCounter, ascending);
33
46
  }
47
+ export function isEmptyArray(arr) {
48
+ return arr.every((item)=>item.isEmpty());
49
+ }
50
+ export function getNonEmptyItems(arr) {
51
+ return arr.filter((item)=>!item.isEmpty());
52
+ }
@@ -207,7 +207,5 @@ export declare class ScopedCountedL2ToL1Message {
207
207
  isEmpty(): boolean;
208
208
  static fromBuffer(buffer: Buffer | BufferReader): ScopedCountedL2ToL1Message;
209
209
  toBuffer(): Buffer;
210
- static fromFields(fields: Fr[] | FieldReader): ScopedCountedL2ToL1Message;
211
- toFields(): Fr[];
212
210
  }
213
211
  //# sourceMappingURL=l2_to_l1_message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"l2_to_l1_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,aAAa;IAEf,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,EAAE;gBADX,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,EAAE;IAGpB,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,aAAa;IAI7B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;IAIhB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,aAAa;IAK5D;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAK/D;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB,KAAK,CAAC,eAAe,EAAE,YAAY,GAAG,mBAAmB;CAG1D;AAED,qBAAa,oBAAoB;IAEtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,MAAM;gBADf,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM;IAGxB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,mBAAmB;IAErB,OAAO,EAAE,aAAa;IACtB,eAAe,EAAE,YAAY;gBAD7B,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,0BAA0B;IAE5B,KAAK,EAAE,oBAAoB;IAC3B,eAAe,EAAE,YAAY;gBAD7B,KAAK,EAAE,oBAAoB,EAC3B,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB"}
1
+ {"version":3,"file":"l2_to_l1_message.d.ts","sourceRoot":"","sources":["../../src/messaging/l2_to_l1_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,6BAA6B,CAAC;AAE9G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,aAAa;IAEf,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,EAAE;gBADX,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,EAAE;IAGpB,MAAM,KAAK,MAAM;;;;;;;;;;;;OAOhB;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,IAAI,aAAa;IAI7B;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAIrC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE;IAIhB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,aAAa;IAK5D;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAK/D;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB,KAAK,CAAC,eAAe,EAAE,YAAY,GAAG,mBAAmB;CAG1D;AAED,qBAAa,oBAAoB;IAEtB,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,MAAM;gBADf,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM;IAGxB,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,mBAAmB;IAErB,OAAO,EAAE,aAAa;IACtB,eAAe,EAAE,YAAY;gBAD7B,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C,QAAQ,IAAI,EAAE,EAAE;CAGjB;AAED,qBAAa,0BAA0B;IAE5B,KAAK,EAAE,oBAAoB;IAC3B,eAAe,EAAE,YAAY;gBAD7B,KAAK,EAAE,oBAAoB,EAC3B,eAAe,EAAE,YAAY;IAGtC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAOhB;IAED,MAAM,CAAC,KAAK;IAIZ,OAAO,IAAI,OAAO;IAIlB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAK/C,QAAQ,IAAI,MAAM;CAGnB"}
@@ -165,11 +165,4 @@ export class ScopedCountedL2ToL1Message {
165
165
  toBuffer() {
166
166
  return serializeToBuffer(this.inner, this.contractAddress);
167
167
  }
168
- static fromFields(fields) {
169
- const reader = FieldReader.asReader(fields);
170
- return new ScopedCountedL2ToL1Message(reader.readObject(CountedL2ToL1Message), reader.readObject(AztecAddress));
171
- }
172
- toFields() {
173
- return serializeToFields(this.inner, this.contractAddress);
174
- }
175
168
  }
@@ -3,8 +3,6 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
3
3
  import { Signature } from '@aztec/foundation/eth-signature';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
5
  import { BufferReader } from '@aztec/foundation/serialize';
6
- import type { BlockInfo } from '../block/l2_block.js';
7
- import { TxHash } from '../tx/index.js';
8
6
  import { Tx } from '../tx/tx.js';
9
7
  import type { UInt32 } from '../types/index.js';
10
8
  import { ConsensusPayload } from './consensus_payload.js';
@@ -29,8 +27,6 @@ export declare class BlockProposal extends Gossipable {
29
27
  readonly payload: ConsensusPayload;
30
28
  /** The signer of the BlockProposal over the header of the new block*/
31
29
  readonly signature: Signature;
32
- /** The sequence of transactions in the block */
33
- readonly txHashes: TxHash[];
34
30
  /** The transactions in the block */
35
31
  readonly txs?: Tx[] | undefined;
36
32
  static p2pTopic: TopicType;
@@ -42,15 +38,12 @@ export declare class BlockProposal extends Gossipable {
42
38
  payload: ConsensusPayload,
43
39
  /** The signer of the BlockProposal over the header of the new block*/
44
40
  signature: Signature,
45
- /** The sequence of transactions in the block */
46
- txHashes: TxHash[],
47
41
  /** The transactions in the block */
48
42
  txs?: Tx[] | undefined);
49
43
  generateP2PMessageIdentifier(): Promise<Buffer32>;
50
44
  get archive(): Fr;
51
45
  get slotNumber(): Fr;
52
- toBlockInfo(): BlockInfo;
53
- static createProposalFromSigner(blockNumber: UInt32, payload: ConsensusPayload, txHashes: TxHash[], txs: Tx[] | undefined, payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
46
+ static createProposalFromSigner(blockNumber: UInt32, payload: ConsensusPayload, txs: Tx[] | undefined, payloadSigner: (payload: Buffer32) => Promise<Signature>): Promise<BlockProposal>;
54
47
  /**Get Sender
55
48
  * Lazily evaluate the sender of the proposal; result is cached
56
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,IAAI,EAAE,MAAM;CAGzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAMzC,8BAA8B;aACd,WAAW,EAAE,MAAM;IAEnC,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;aACtD,SAAS,EAAE,SAAS;IAEpC,gDAAgD;aAChC,QAAQ,EAAE,MAAM,EAAE;IAGlC,oCAAoC;aACpB,GAAG,CAAC,EAAE,EAAE,EAAE;IAnB5B,OAAgB,QAAQ,YAA4B;IAEpD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,8BAA8B;IACd,WAAW,EAAE,MAAM;IAEnC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;IACtD,SAAS,EAAE,SAAS;IAEpC,gDAAgD;IAChC,QAAQ,EAAE,MAAM,EAAE;IAGlC,oCAAoC;IACpB,GAAG,CAAC,EAAE,EAAE,EAAE,YAAA;IAKnB,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;IAED,WAAW,IAAI,SAAS;WASX,wBAAwB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAAE,EAElB,GAAG,EAAE,EAAE,EAAE,GAAG,SAAS,EACrB,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC;IAQ1D;;OAEG;IACH,SAAS;IAUT,UAAU;IAIV,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAgB5D,OAAO,IAAI,MAAM;CAUlB"}
1
+ {"version":3,"file":"block_proposal.d.ts","sourceRoot":"","sources":["../../src/p2p/block_proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,IAAI,EAAE,MAAM;CAGzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAMzC,8BAA8B;aACd,WAAW,EAAE,MAAM;IAEnC,iEAAiE;aACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;aACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;aACpB,GAAG,CAAC,EAAE,EAAE,EAAE;IAhB5B,OAAgB,QAAQ,YAA4B;IAEpD,OAAO,CAAC,MAAM,CAAyB;;IAGrC,8BAA8B;IACd,WAAW,EAAE,MAAM;IAEnC,iEAAiE;IACjD,OAAO,EAAE,gBAAgB;IAEzC,sEAAsE;IACtD,SAAS,EAAE,SAAS;IAGpC,oCAAoC;IACpB,GAAG,CAAC,EAAE,EAAE,EAAE,YAAA;IAKnB,4BAA4B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI1D,IAAI,OAAO,IAAI,EAAE,CAEhB;IAED,IAAI,UAAU,IAAI,EAAE,CAEnB;WAEY,wBAAwB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,gBAAgB,EAEzB,GAAG,EAAE,EAAE,EAAE,GAAG,SAAS,EACrB,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC;IAQ1D;;OAEG;IACH,SAAS;IAUT,UAAU;IAIV,QAAQ,IAAI,MAAM;IASlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAe5D,OAAO,IAAI,MAAM;CAQlB"}
@@ -2,7 +2,6 @@ import { Buffer32 } from '@aztec/foundation/buffer';
2
2
  import { keccak256, recoverAddress } from '@aztec/foundation/crypto';
3
3
  import { Signature } from '@aztec/foundation/eth-signature';
4
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
- import { TxHash } from '../tx/index.js';
6
5
  import { Tx } from '../tx/tx.js';
7
6
  import { ConsensusPayload } from './consensus_payload.js';
8
7
  import { Gossipable } from './gossipable.js';
@@ -22,13 +21,12 @@ export class BlockProposalHash extends Buffer32 {
22
21
  blockNumber;
23
22
  payload;
24
23
  signature;
25
- txHashes;
26
24
  txs;
27
25
  static p2pTopic = TopicType.block_proposal;
28
26
  sender;
29
- constructor(/** The number of the block */ blockNumber, /** The payload of the message, and what the signature is over */ payload, /** The signer of the BlockProposal over the header of the new block*/ signature, /** The sequence of transactions in the block */ txHashes, // Note(md): this is placed after the txs payload in order to be backwards compatible with previous versions
27
+ constructor(/** The number of the block */ blockNumber, /** The payload of the message, and what the signature is over */ payload, /** The signer of the BlockProposal over the header of the new block*/ signature, // Note(md): this is placed after the txs payload in order to be backwards compatible with previous versions
30
28
  /** The transactions in the block */ txs){
31
- super(), this.blockNumber = blockNumber, this.payload = payload, this.signature = signature, this.txHashes = txHashes, this.txs = txs;
29
+ super(), this.blockNumber = blockNumber, this.payload = payload, this.signature = signature, this.txs = txs;
32
30
  }
33
31
  generateP2PMessageIdentifier() {
34
32
  return Promise.resolve(new BlockProposalHash(keccak256(this.signature.toBuffer())));
@@ -39,19 +37,11 @@ export class BlockProposalHash extends Buffer32 {
39
37
  get slotNumber() {
40
38
  return this.payload.header.slotNumber;
41
39
  }
42
- toBlockInfo() {
43
- return {
44
- blockNumber: this.blockNumber,
45
- slotNumber: this.slotNumber.toNumber(),
46
- archive: this.archive.toString(),
47
- txCount: this.txHashes.length
48
- };
49
- }
50
- static async createProposalFromSigner(blockNumber, payload, txHashes, // Note(md): Provided separately to tx hashes such that this function can be optional
40
+ static async createProposalFromSigner(blockNumber, payload, // Note(md): Provided separately to tx hashes such that this function can be optional
51
41
  txs, payloadSigner) {
52
42
  const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
53
43
  const sig = await payloadSigner(hashed);
54
- return new BlockProposal(blockNumber, payload, sig, txHashes, txs);
44
+ return new BlockProposal(blockNumber, payload, sig, txs);
55
45
  }
56
46
  /**Get Sender
57
47
  * Lazily evaluate the sender of the proposal; result is cached
@@ -70,9 +60,7 @@ export class BlockProposalHash extends Buffer32 {
70
60
  const buffer = [
71
61
  this.blockNumber,
72
62
  this.payload,
73
- this.signature,
74
- this.txHashes.length,
75
- this.txHashes
63
+ this.signature
76
64
  ];
77
65
  if (this.txs) {
78
66
  buffer.push(this.txs.length);
@@ -85,14 +73,13 @@ export class BlockProposalHash extends Buffer32 {
85
73
  const blockNumber = reader.readNumber();
86
74
  const payload = reader.readObject(ConsensusPayload);
87
75
  const sig = reader.readObject(Signature);
88
- const txHashes = reader.readArray(reader.readNumber(), TxHash);
89
76
  if (!reader.isEmpty()) {
90
77
  const txs = reader.readArray(reader.readNumber(), Tx);
91
- return new BlockProposal(blockNumber, payload, sig, txHashes, txs);
78
+ return new BlockProposal(blockNumber, payload, sig, txs);
92
79
  }
93
- return new BlockProposal(blockNumber, payload, sig, txHashes);
80
+ return new BlockProposal(blockNumber, payload, sig);
94
81
  }
95
82
  getSize() {
96
- return 4 /* blockNumber */ + this.payload.getSize() + this.signature.getSize() + 4 /* txHashes.length */ + this.txHashes.length * TxHash.SIZE + (this.txs ? 4 /* txs.length */ + this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) : 0);
83
+ return 4 /* blockNumber */ + this.payload.getSize() + this.signature.getSize() + (this.txs ? this.txs.reduce((acc, tx)=>acc + tx.getSize(), 0) : 0);
97
84
  }
98
85
  }
@@ -3,7 +3,7 @@ import { BufferReader } from '@aztec/foundation/serialize';
3
3
  import type { FieldsOf } from '@aztec/foundation/types';
4
4
  import { z } from 'zod';
5
5
  import type { L2Block } from '../block/l2_block.js';
6
- import { ProposedBlockHeader, StateReference } from '../tx/index.js';
6
+ import { ProposedBlockHeader, StateReference, TxHash } from '../tx/index.js';
7
7
  import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
8
8
  export declare class ConsensusPayload implements Signable {
9
9
  /** The proposed block header the attestation is made over */
@@ -12,6 +12,8 @@ export declare class ConsensusPayload implements Signable {
12
12
  readonly archive: Fr;
13
13
  /** The state reference after the block is added */
14
14
  readonly stateReference: StateReference;
15
+ /** The sequence of transactions in the block */
16
+ readonly txHashes: TxHash[];
15
17
  private size;
16
18
  constructor(
17
19
  /** The proposed block header the attestation is made over */
@@ -19,7 +21,9 @@ export declare class ConsensusPayload implements Signable {
19
21
  /** The archive root after the block is added */
20
22
  archive: Fr,
21
23
  /** The state reference after the block is added */
22
- stateReference: StateReference);
24
+ stateReference: StateReference,
25
+ /** The sequence of transactions in the block */
26
+ txHashes: TxHash[]);
23
27
  static get schema(): z.ZodEffects<z.ZodObject<{
24
28
  header: import("@aztec/foundation/schemas").ZodFor<ProposedBlockHeader>;
25
29
  archive: z.ZodType<Fr, any, string>;
@@ -150,10 +154,12 @@ export declare class ConsensusPayload implements Signable {
150
154
  nextAvailableLeafIndex: string | number | bigint;
151
155
  };
152
156
  }>;
157
+ txHashes: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>, TxHash, string>, "many">;
153
158
  }, "strip", z.ZodTypeAny, {
154
159
  archive: Fr;
155
160
  header: ProposedBlockHeader;
156
161
  stateReference: StateReference;
162
+ txHashes: TxHash[];
157
163
  }, {
158
164
  archive: string;
159
165
  stateReference: {
@@ -176,6 +182,7 @@ export declare class ConsensusPayload implements Signable {
176
182
  nextAvailableLeafIndex: string | number | bigint;
177
183
  };
178
184
  };
185
+ txHashes: string[];
179
186
  header?: any;
180
187
  }>, ConsensusPayload, {
181
188
  archive: string;
@@ -199,9 +206,10 @@ export declare class ConsensusPayload implements Signable {
199
206
  nextAvailableLeafIndex: string | number | bigint;
200
207
  };
201
208
  };
209
+ txHashes: string[];
202
210
  header?: any;
203
211
  }>;
204
- static getFields(fields: FieldsOf<ConsensusPayload>): readonly [ProposedBlockHeader, Fr, StateReference];
212
+ static getFields(fields: FieldsOf<ConsensusPayload>): readonly [ProposedBlockHeader, Fr, StateReference, TxHash[]];
205
213
  getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
206
214
  toBuffer(): Buffer;
207
215
  static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload;
@@ -1 +1 @@
1
- {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;aACnC,cAAc,EAAE,cAAc;IARhD,OAAO,CAAC,IAAI,CAAqB;;IAG/B,6DAA6D;IAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;IACnC,cAAc,EAAE,cAAc;IAGhD,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAInD,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAsBnE,QAAQ,IAAI,MAAM;IAMlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAS/D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAIvE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAIlD,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC;;;OAGG;IACH,OAAO,IAAI,MAAM;IASjB,QAAQ;CAGT"}
1
+ {"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;aACnC,cAAc,EAAE,cAAc;IAC9C,gDAAgD;aAChC,QAAQ,EAAE,MAAM,EAAE;IAVpC,OAAO,CAAC,IAAI,CAAqB;;IAG/B,6DAA6D;IAC7C,MAAM,EAAE,mBAAmB;IAC3C,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,mDAAmD;IACnC,cAAc,EAAE,cAAc;IAC9C,gDAAgD;IAChC,QAAQ,EAAE,MAAM,EAAE;IAGpC,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAShB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAInD,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM;IAwBnE,QAAQ,IAAI,MAAM;IAYlB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB;IAU/D,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;IAIvE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IASlD,MAAM,CAAC,KAAK,IAAI,gBAAgB;IAIhC;;;OAGG;IACH,OAAO,IAAI,MAAM;IASjB,QAAQ;CAKT"}
@@ -4,29 +4,33 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
4
  import { hexToBuffer } from '@aztec/foundation/string';
5
5
  import { encodeAbiParameters, parseAbiParameters } from 'viem';
6
6
  import { z } from 'zod';
7
- import { ProposedBlockHeader, StateReference } from '../tx/index.js';
7
+ import { ProposedBlockHeader, StateReference, TxHash } from '../tx/index.js';
8
8
  export class ConsensusPayload {
9
9
  header;
10
10
  archive;
11
11
  stateReference;
12
+ txHashes;
12
13
  size;
13
- constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The state reference after the block is added */ stateReference){
14
+ constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The state reference after the block is added */ stateReference, /** The sequence of transactions in the block */ txHashes){
14
15
  this.header = header;
15
16
  this.archive = archive;
16
17
  this.stateReference = stateReference;
18
+ this.txHashes = txHashes;
17
19
  }
18
20
  static get schema() {
19
21
  return z.object({
20
22
  header: ProposedBlockHeader.schema,
21
23
  archive: schemas.Fr,
22
- stateReference: StateReference.schema
23
- }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.stateReference));
24
+ stateReference: StateReference.schema,
25
+ txHashes: z.array(TxHash.schema)
26
+ }).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.stateReference, obj.txHashes));
24
27
  }
25
28
  static getFields(fields) {
26
29
  return [
27
30
  fields.header,
28
31
  fields.archive,
29
- fields.stateReference
32
+ fields.stateReference,
33
+ fields.txHashes
30
34
  ];
31
35
  }
32
36
  getPayloadToSign(domainSeparator) {
@@ -34,11 +38,13 @@ export class ConsensusPayload {
34
38
  '(' + 'bytes32, ' + // archive
35
39
  '((bytes32,uint32),((bytes32,uint32),(bytes32,uint32),(bytes32,uint32))), ' + // stateReference
36
40
  '(int256), ' + // oracleInput
37
- 'bytes32' + // headerHash
41
+ 'bytes32, ' + // headerHash
42
+ 'bytes32[]' + // txHashes
38
43
  ')');
39
44
  const archiveRoot = this.archive.toString();
40
45
  const stateReference = this.stateReference.toAbi();
41
46
  const headerHash = this.header.hash().toString();
47
+ const txArray = this.txHashes.map((tx)=>tx.toString());
42
48
  const encodedData = encodeAbiParameters(abi, [
43
49
  domainSeparator,
44
50
  [
@@ -47,7 +53,8 @@ export class ConsensusPayload {
47
53
  [
48
54
  0n
49
55
  ],
50
- headerHash
56
+ headerHash,
57
+ txArray
51
58
  ]
52
59
  ]);
53
60
  return hexToBuffer(encodedData);
@@ -56,23 +63,25 @@ export class ConsensusPayload {
56
63
  const buffer = serializeToBuffer([
57
64
  this.header,
58
65
  this.archive,
59
- this.stateReference
66
+ this.stateReference,
67
+ this.txHashes.length,
68
+ this.txHashes
60
69
  ]);
61
70
  this.size = buffer.length;
62
71
  return buffer;
63
72
  }
64
73
  static fromBuffer(buf) {
65
74
  const reader = BufferReader.asReader(buf);
66
- return new ConsensusPayload(reader.readObject(ProposedBlockHeader), reader.readObject(Fr), reader.readObject(StateReference));
75
+ return new ConsensusPayload(reader.readObject(ProposedBlockHeader), reader.readObject(Fr), reader.readObject(StateReference), reader.readArray(reader.readNumber(), TxHash));
67
76
  }
68
77
  static fromFields(fields) {
69
- return new ConsensusPayload(fields.header, fields.archive, fields.stateReference);
78
+ return new ConsensusPayload(fields.header, fields.archive, fields.stateReference, fields.txHashes);
70
79
  }
71
80
  static fromBlock(block) {
72
- return new ConsensusPayload(block.header.toPropose(), block.archive.root, block.header.state);
81
+ return new ConsensusPayload(block.header.toPropose(), block.archive.root, block.header.state, block.body.txEffects.map((tx)=>tx.txHash));
73
82
  }
74
83
  static empty() {
75
- return new ConsensusPayload(ProposedBlockHeader.empty(), Fr.ZERO, StateReference.empty());
84
+ return new ConsensusPayload(ProposedBlockHeader.empty(), Fr.ZERO, StateReference.empty(), []);
76
85
  }
77
86
  /**
78
87
  * Get the size of the consensus payload in bytes.
@@ -86,6 +95,6 @@ export class ConsensusPayload {
86
95
  return this.size;
87
96
  }
88
97
  toString() {
89
- return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, stateReference: ${this.stateReference.l1ToL2MessageTree.root.toString()}`;
98
+ return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, stateReference: ${this.stateReference.l1ToL2MessageTree.root.toString()}, txHashes: ${this.txHashes.join(', ')}`;
90
99
  }
91
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;CACxC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,eASlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
1
+ {"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;CACxC;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,aAAa,eAOlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
@@ -23,12 +23,10 @@ export function getTopicTypeForClientType(clientType) {
23
23
  "tx",
24
24
  "block_proposal"
25
25
  ];
26
- } else {
27
- const _ = clientType;
28
- return [
29
- "tx"
30
- ];
31
26
  }
27
+ return [
28
+ "tx"
29
+ ];
32
30
  }
33
31
  /**
34
32
  * Convert the topic string into a set of labels
@@ -4,14 +4,13 @@ export declare enum ProvingRequestType {
4
4
  PUBLIC_BASE_ROLLUP = 2,
5
5
  MERGE_ROLLUP = 3,
6
6
  EMPTY_BLOCK_ROOT_ROLLUP = 4,
7
- PADDING_BLOCK_ROOT_ROLLUP = 5,
8
- BLOCK_ROOT_ROLLUP = 6,
9
- SINGLE_TX_BLOCK_ROOT_ROLLUP = 7,
10
- BLOCK_MERGE_ROLLUP = 8,
11
- ROOT_ROLLUP = 9,
12
- BASE_PARITY = 10,
13
- ROOT_PARITY = 11,
7
+ BLOCK_ROOT_ROLLUP = 5,
8
+ SINGLE_TX_BLOCK_ROOT_ROLLUP = 6,
9
+ BLOCK_MERGE_ROLLUP = 7,
10
+ ROOT_ROLLUP = 8,
11
+ BASE_PARITY = 9,
12
+ ROOT_PARITY = 10,
14
13
  /** Recursive Client IVC verification to connect private to public or rollup */
15
- TUBE_PROOF = 12
14
+ TUBE_PROOF = 11
16
15
  }
17
16
  //# sourceMappingURL=proving_request_type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proving_request_type.d.ts","sourceRoot":"","sources":["../../src/proofs/proving_request_type.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,SAAS,IAAA;IAET,mBAAmB,IAAA;IACnB,kBAAkB,IAAA;IAClB,YAAY,IAAA;IACZ,uBAAuB,IAAA;IACvB,yBAAyB,IAAA;IACzB,iBAAiB,IAAA;IACjB,2BAA2B,IAAA;IAC3B,kBAAkB,IAAA;IAClB,WAAW,IAAA;IAEX,WAAW,KAAA;IACX,WAAW,KAAA;IACX,+EAA+E;IAC/E,UAAU,KAAA;CACX"}
1
+ {"version":3,"file":"proving_request_type.d.ts","sourceRoot":"","sources":["../../src/proofs/proving_request_type.ts"],"names":[],"mappings":"AAAA,oBAAY,kBAAkB;IAC5B,SAAS,IAAA;IAET,mBAAmB,IAAA;IACnB,kBAAkB,IAAA;IAClB,YAAY,IAAA;IACZ,uBAAuB,IAAA;IACvB,iBAAiB,IAAA;IACjB,2BAA2B,IAAA;IAC3B,kBAAkB,IAAA;IAClB,WAAW,IAAA;IAEX,WAAW,IAAA;IACX,WAAW,KAAA;IACX,+EAA+E;IAC/E,UAAU,KAAA;CACX"}
@@ -4,13 +4,12 @@ export var ProvingRequestType = /*#__PURE__*/ function(ProvingRequestType) {
4
4
  ProvingRequestType[ProvingRequestType["PUBLIC_BASE_ROLLUP"] = 2] = "PUBLIC_BASE_ROLLUP";
5
5
  ProvingRequestType[ProvingRequestType["MERGE_ROLLUP"] = 3] = "MERGE_ROLLUP";
6
6
  ProvingRequestType[ProvingRequestType["EMPTY_BLOCK_ROOT_ROLLUP"] = 4] = "EMPTY_BLOCK_ROOT_ROLLUP";
7
- ProvingRequestType[ProvingRequestType["PADDING_BLOCK_ROOT_ROLLUP"] = 5] = "PADDING_BLOCK_ROOT_ROLLUP";
8
- ProvingRequestType[ProvingRequestType["BLOCK_ROOT_ROLLUP"] = 6] = "BLOCK_ROOT_ROLLUP";
9
- ProvingRequestType[ProvingRequestType["SINGLE_TX_BLOCK_ROOT_ROLLUP"] = 7] = "SINGLE_TX_BLOCK_ROOT_ROLLUP";
10
- ProvingRequestType[ProvingRequestType["BLOCK_MERGE_ROLLUP"] = 8] = "BLOCK_MERGE_ROLLUP";
11
- ProvingRequestType[ProvingRequestType["ROOT_ROLLUP"] = 9] = "ROOT_ROLLUP";
12
- ProvingRequestType[ProvingRequestType["BASE_PARITY"] = 10] = "BASE_PARITY";
13
- ProvingRequestType[ProvingRequestType["ROOT_PARITY"] = 11] = "ROOT_PARITY";
14
- /** Recursive Client IVC verification to connect private to public or rollup */ ProvingRequestType[ProvingRequestType["TUBE_PROOF"] = 12] = "TUBE_PROOF";
7
+ ProvingRequestType[ProvingRequestType["BLOCK_ROOT_ROLLUP"] = 5] = "BLOCK_ROOT_ROLLUP";
8
+ ProvingRequestType[ProvingRequestType["SINGLE_TX_BLOCK_ROOT_ROLLUP"] = 6] = "SINGLE_TX_BLOCK_ROOT_ROLLUP";
9
+ ProvingRequestType[ProvingRequestType["BLOCK_MERGE_ROLLUP"] = 7] = "BLOCK_MERGE_ROLLUP";
10
+ ProvingRequestType[ProvingRequestType["ROOT_ROLLUP"] = 8] = "ROOT_ROLLUP";
11
+ ProvingRequestType[ProvingRequestType["BASE_PARITY"] = 9] = "BASE_PARITY";
12
+ ProvingRequestType[ProvingRequestType["ROOT_PARITY"] = 10] = "ROOT_PARITY";
13
+ /** Recursive Client IVC verification to connect private to public or rollup */ ProvingRequestType[ProvingRequestType["TUBE_PROOF"] = 11] = "TUBE_PROOF";
15
14
  return ProvingRequestType;
16
15
  }({});
@@ -2,11 +2,16 @@ import { SpongeBlob } from '@aztec/blob-lib';
2
2
  import { Fr } from '@aztec/foundation/fields';
3
3
  import { BufferReader } from '@aztec/foundation/serialize';
4
4
  import { PartialStateReference } from '../tx/partial_state_reference.js';
5
+ import { RollupTypes } from '../types/shared.js';
5
6
  import { BlockConstantData } from './block_constant_data.js';
6
7
  /**
7
8
  * Output of the base and merge rollup circuits.
8
9
  */
9
10
  export declare class BaseOrMergeRollupPublicInputs {
11
+ /**
12
+ * Specifies from which type of rollup circuit these inputs are from.
13
+ */
14
+ rollupType: RollupTypes;
10
15
  /**
11
16
  * Number of txs in this rollup.
12
17
  */
@@ -45,6 +50,10 @@ export declare class BaseOrMergeRollupPublicInputs {
45
50
  */
46
51
  accumulatedManaUsed: Fr;
47
52
  constructor(
53
+ /**
54
+ * Specifies from which type of rollup circuit these inputs are from.
55
+ */
56
+ rollupType: RollupTypes,
48
57
  /**
49
58
  * Number of txs in this rollup.
50
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base_or_merge_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/base_or_merge_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,6BAA6B;IAEtC;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,KAAK,EAAE,qBAAqB;IACnC;;OAEG;IACI,GAAG,EAAE,qBAAqB;IACjC;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;;IApC9B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,KAAK,EAAE,qBAAqB;IACnC;;OAEG;IACI,GAAG,EAAE,qBAAqB;IACjC;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;IAGhC,iCAAiC;IACjC,MAAM,CAAC,KAAK;IAcZ;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,6BAA6B;IAe/E;;;OAGG;IACH,QAAQ;IAkBR;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,8DAA8D;IAC9D,MAAM;IAIN,6CAA6C;IAC7C,MAAM,KAAK,MAAM,sEAEhB;CACF"}
1
+ {"version":3,"file":"base_or_merge_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/base_or_merge_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,6BAA6B;IAEtC;;OAEG;IACI,UAAU,EAAE,WAAW;IAC9B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,KAAK,EAAE,qBAAqB;IACnC;;OAEG;IACI,GAAG,EAAE,qBAAqB;IACjC;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;;IAxC9B;;OAEG;IACI,UAAU,EAAE,WAAW;IAC9B;;OAEG;IACI,MAAM,EAAE,MAAM;IACrB;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,KAAK,EAAE,qBAAqB;IACnC;;OAEG;IACI,GAAG,EAAE,qBAAqB;IACjC;;OAEG;IACI,eAAe,EAAE,UAAU;IAClC;;OAEG;IACI,aAAa,EAAE,UAAU;IAChC;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,eAAe,EAAE,EAAE;IAC1B;;OAEG;IACI,mBAAmB,EAAE,EAAE;IAGhC,iCAAiC;IACjC,MAAM,CAAC,KAAK;IAeZ;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,6BAA6B;IAgB/E;;;OAGG;IACH,QAAQ;IAmBR;;;OAGG;IACH,QAAQ;IAIR;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAI7B,8DAA8D;IAC9D,MAAM;IAIN,6CAA6C;IAC7C,MAAM,KAAK,MAAM,sEAEhB;CACF"}
@@ -4,10 +4,12 @@ import { bufferSchemaFor } from '@aztec/foundation/schemas';
4
4
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
6
  import { PartialStateReference } from '../tx/partial_state_reference.js';
7
+ import { RollupTypes } from '../types/shared.js';
7
8
  import { BlockConstantData } from './block_constant_data.js';
8
9
  /**
9
10
  * Output of the base and merge rollup circuits.
10
11
  */ export class BaseOrMergeRollupPublicInputs {
12
+ rollupType;
11
13
  numTxs;
12
14
  constants;
13
15
  start;
@@ -18,6 +20,8 @@ import { BlockConstantData } from './block_constant_data.js';
18
20
  accumulatedFees;
19
21
  accumulatedManaUsed;
20
22
  constructor(/**
23
+ * Specifies from which type of rollup circuit these inputs are from.
24
+ */ rollupType, /**
21
25
  * Number of txs in this rollup.
22
26
  */ numTxs, /**
23
27
  * Data which is forwarded through the rollup circuits unchanged.
@@ -37,6 +41,7 @@ import { BlockConstantData } from './block_constant_data.js';
37
41
  */ accumulatedFees, /**
38
42
  * The summed `mana_used` of the constituent transactions.
39
43
  */ accumulatedManaUsed){
44
+ this.rollupType = rollupType;
40
45
  this.numTxs = numTxs;
41
46
  this.constants = constants;
42
47
  this.start = start;
@@ -48,7 +53,7 @@ import { BlockConstantData } from './block_constant_data.js';
48
53
  this.accumulatedManaUsed = accumulatedManaUsed;
49
54
  }
50
55
  /** Returns an empty instance. */ static empty() {
51
- return new BaseOrMergeRollupPublicInputs(0, BlockConstantData.empty(), PartialStateReference.empty(), PartialStateReference.empty(), SpongeBlob.empty(), SpongeBlob.empty(), Fr.zero(), Fr.zero(), Fr.zero());
56
+ return new BaseOrMergeRollupPublicInputs(RollupTypes.Base, 0, BlockConstantData.empty(), PartialStateReference.empty(), PartialStateReference.empty(), SpongeBlob.empty(), SpongeBlob.empty(), Fr.zero(), Fr.zero(), Fr.zero());
52
57
  }
53
58
  /**
54
59
  * Deserializes from a buffer or reader.
@@ -57,13 +62,13 @@ import { BlockConstantData } from './block_constant_data.js';
57
62
  * @returns The deserialized public inputs.
58
63
  */ static fromBuffer(buffer) {
59
64
  const reader = BufferReader.asReader(buffer);
60
- return new BaseOrMergeRollupPublicInputs(reader.readNumber(), reader.readObject(BlockConstantData), reader.readObject(PartialStateReference), reader.readObject(PartialStateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
65
+ return new BaseOrMergeRollupPublicInputs(reader.readNumber(), reader.readNumber(), reader.readObject(BlockConstantData), reader.readObject(PartialStateReference), reader.readObject(PartialStateReference), reader.readObject(SpongeBlob), reader.readObject(SpongeBlob), Fr.fromBuffer(reader), Fr.fromBuffer(reader), Fr.fromBuffer(reader));
61
66
  }
62
67
  /**
63
68
  * Serialize this as a buffer.
64
69
  * @returns The buffer.
65
70
  */ toBuffer() {
66
- return serializeToBuffer(this.numTxs, this.constants, this.start, this.end, this.startSpongeBlob, this.endSpongeBlob, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
71
+ return serializeToBuffer(this.rollupType, this.numTxs, this.constants, this.start, this.end, this.startSpongeBlob, this.endSpongeBlob, this.outHash, this.accumulatedFees, this.accumulatedManaUsed);
67
72
  }
68
73
  /**
69
74
  * Serialize this as a hex string.