@aztec/stdlib 0.87.3-nightly.20250529 → 0.87.4

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 (182) hide show
  1. package/dest/abi/abi.d.ts +0 -3
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +0 -38
  4. package/dest/avm/avm.d.ts +12 -696
  5. package/dest/avm/avm.d.ts.map +1 -1
  6. package/dest/avm/avm.js +8 -16
  7. package/dest/avm/avm_accumulated_data.d.ts +0 -77
  8. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  9. package/dest/avm/avm_accumulated_data.js +0 -67
  10. package/dest/avm/avm_circuit_public_inputs.d.ts +3 -73
  11. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  12. package/dest/avm/avm_circuit_public_inputs.js +9 -19
  13. package/dest/avm/avm_proving_request.d.ts +0 -366
  14. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  15. package/dest/block/body.d.ts +1 -1
  16. package/dest/block/body.d.ts.map +1 -1
  17. package/dest/block/body.js +2 -2
  18. package/dest/block/index.d.ts +0 -1
  19. package/dest/block/index.d.ts.map +1 -1
  20. package/dest/block/index.js +0 -1
  21. package/dest/block/l2_block.d.ts +2 -3
  22. package/dest/block/l2_block.d.ts.map +1 -1
  23. package/dest/block/l2_block.js +5 -10
  24. package/dest/block/l2_block_source.d.ts +4 -9
  25. package/dest/block/l2_block_source.d.ts.map +1 -1
  26. package/dest/block/l2_block_source.js +0 -1
  27. package/dest/block/published_l2_block.d.ts +69 -99
  28. package/dest/block/published_l2_block.d.ts.map +1 -1
  29. package/dest/block/published_l2_block.js +12 -38
  30. package/dest/block/test/l2_tips_store_test_suite.js +1 -1
  31. package/dest/interfaces/archiver.js +2 -2
  32. package/dest/interfaces/aztec-node.js +2 -2
  33. package/dest/interfaces/p2p.d.ts +2 -5
  34. package/dest/interfaces/p2p.d.ts.map +1 -1
  35. package/dest/interfaces/p2p.js +2 -1
  36. package/dest/interfaces/proving-job.d.ts +4 -370
  37. package/dest/interfaces/proving-job.d.ts.map +1 -1
  38. package/dest/interfaces/proving-job.js +2 -2
  39. package/dest/interfaces/server_circuit_prover.d.ts +2 -3
  40. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  41. package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -1
  42. package/dest/kernel/hints/key_validation_hint.d.ts +6 -2
  43. package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
  44. package/dest/kernel/hints/key_validation_hint.js +7 -5
  45. package/dest/kernel/hints/private_kernel_reset_hints.d.ts +7 -7
  46. package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
  47. package/dest/kernel/hints/private_kernel_reset_hints.js +4 -8
  48. package/dest/kernel/hints/read_request_hints.d.ts +8 -8
  49. package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
  50. package/dest/kernel/index.d.ts +0 -1
  51. package/dest/kernel/index.d.ts.map +1 -1
  52. package/dest/kernel/index.js +0 -1
  53. package/dest/kernel/private_kernel_data.d.ts +25 -6
  54. package/dest/kernel/private_kernel_data.d.ts.map +1 -1
  55. package/dest/kernel/private_kernel_data.js +19 -8
  56. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -7
  57. package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
  58. package/dest/kernel/private_kernel_reset_circuit_private_inputs.js +6 -10
  59. package/dest/kernel/private_kernel_reset_dimensions.d.ts +10 -10
  60. package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
  61. package/dest/kernel/private_kernel_reset_dimensions.js +29 -29
  62. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -10
  63. package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
  64. package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +3 -8
  65. package/dest/kernel/public_call_request.d.ts +0 -54
  66. package/dest/kernel/public_call_request.d.ts.map +1 -1
  67. package/dest/kernel/public_call_request.js +0 -58
  68. package/dest/logs/contract_class_log.d.ts +4 -0
  69. package/dest/logs/contract_class_log.d.ts.map +1 -1
  70. package/dest/logs/contract_class_log.js +33 -0
  71. package/dest/logs/log_with_tx_data.d.ts +3 -3
  72. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  73. package/dest/logs/log_with_tx_data.js +13 -9
  74. package/dest/logs/private_log.d.ts +0 -1
  75. package/dest/logs/private_log.d.ts.map +1 -1
  76. package/dest/logs/private_log.js +0 -3
  77. package/dest/logs/public_log.d.ts +0 -1
  78. package/dest/logs/public_log.d.ts.map +1 -1
  79. package/dest/logs/public_log.js +0 -3
  80. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  81. package/dest/logs/tx_scoped_l2_log.js +0 -1
  82. package/dest/rollup/avm_proof_data.d.ts +5 -7
  83. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  84. package/dest/rollup/avm_proof_data.js +4 -12
  85. package/dest/rollup/base_rollup_hints.d.ts +4 -4
  86. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  87. package/dest/rollup/base_rollup_hints.js +8 -8
  88. package/dest/rollup/previous_rollup_block_data.d.ts +15 -6
  89. package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
  90. package/dest/rollup/previous_rollup_block_data.js +13 -8
  91. package/dest/rollup/previous_rollup_data.d.ts +15 -6
  92. package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
  93. package/dest/rollup/previous_rollup_data.js +13 -8
  94. package/dest/rollup/private_tube_data.d.ts +3 -3
  95. package/dest/rollup/private_tube_data.d.ts.map +1 -1
  96. package/dest/rollup/private_tube_data.js +3 -3
  97. package/dest/rollup/public_tube_data.d.ts +3 -3
  98. package/dest/rollup/public_tube_data.d.ts.map +1 -1
  99. package/dest/rollup/public_tube_data.js +3 -3
  100. package/dest/rollup/root_rollup.d.ts +10 -9
  101. package/dest/rollup/root_rollup.d.ts.map +1 -1
  102. package/dest/rollup/root_rollup.js +20 -9
  103. package/dest/tests/factories.d.ts +1 -2
  104. package/dest/tests/factories.d.ts.map +1 -1
  105. package/dest/tests/factories.js +19 -25
  106. package/dest/tests/mocks.d.ts.map +1 -1
  107. package/dest/tests/mocks.js +3 -4
  108. package/dest/tx/processed_tx.d.ts.map +1 -1
  109. package/dest/tx/processed_tx.js +5 -2
  110. package/dest/tx/tx.d.ts +25 -10
  111. package/dest/tx/tx.d.ts.map +1 -1
  112. package/dest/tx/tx.js +50 -25
  113. package/dest/tx/tx_effect.d.ts +1 -1
  114. package/dest/tx/tx_effect.d.ts.map +1 -1
  115. package/dest/tx/tx_effect.js +2 -2
  116. package/dest/validators/types.d.ts +0 -4
  117. package/dest/validators/types.d.ts.map +1 -1
  118. package/dest/vks/index.d.ts +1 -1
  119. package/dest/vks/index.d.ts.map +1 -1
  120. package/dest/vks/index.js +1 -1
  121. package/dest/vks/{vk_data.d.ts → vk_witness_data.d.ts} +8 -8
  122. package/dest/vks/vk_witness_data.d.ts.map +1 -0
  123. package/dest/vks/{vk_data.js → vk_witness_data.js} +10 -10
  124. package/package.json +7 -7
  125. package/src/abi/abi.ts +0 -37
  126. package/src/avm/avm.ts +0 -14
  127. package/src/avm/avm_accumulated_data.ts +0 -93
  128. package/src/avm/avm_circuit_public_inputs.ts +2 -22
  129. package/src/block/body.ts +2 -7
  130. package/src/block/index.ts +0 -1
  131. package/src/block/l2_block.ts +3 -8
  132. package/src/block/l2_block_source.ts +3 -9
  133. package/src/block/published_l2_block.ts +24 -38
  134. package/src/block/test/l2_tips_store_test_suite.ts +1 -1
  135. package/src/interfaces/archiver.ts +2 -2
  136. package/src/interfaces/aztec-node.ts +2 -2
  137. package/src/interfaces/p2p.ts +3 -8
  138. package/src/interfaces/proving-job.ts +3 -3
  139. package/src/interfaces/server_circuit_prover.ts +2 -3
  140. package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +3 -3
  141. package/src/kernel/hints/key_validation_hint.ts +6 -4
  142. package/src/kernel/hints/private_kernel_reset_hints.ts +43 -34
  143. package/src/kernel/hints/read_request_hints.ts +15 -27
  144. package/src/kernel/index.ts +0 -1
  145. package/src/kernel/private_kernel_data.ts +29 -7
  146. package/src/kernel/private_kernel_reset_circuit_private_inputs.ts +13 -16
  147. package/src/kernel/private_kernel_reset_dimensions.ts +27 -27
  148. package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -10
  149. package/src/kernel/public_call_request.ts +0 -66
  150. package/src/logs/contract_class_log.ts +36 -0
  151. package/src/logs/log_with_tx_data.ts +11 -7
  152. package/src/logs/private_log.ts +0 -4
  153. package/src/logs/public_log.ts +0 -4
  154. package/src/logs/tx_scoped_l2_log.ts +0 -1
  155. package/src/rollup/avm_proof_data.ts +7 -14
  156. package/src/rollup/base_rollup_hints.ts +4 -4
  157. package/src/rollup/previous_rollup_block_data.ts +12 -6
  158. package/src/rollup/previous_rollup_data.ts +12 -6
  159. package/src/rollup/private_tube_data.ts +4 -4
  160. package/src/rollup/public_tube_data.ts +4 -4
  161. package/src/rollup/root_rollup.ts +19 -6
  162. package/src/tests/factories.ts +32 -36
  163. package/src/tests/mocks.ts +3 -6
  164. package/src/tx/processed_tx.ts +5 -4
  165. package/src/tx/tx.ts +54 -28
  166. package/src/tx/tx_effect.ts +5 -23
  167. package/src/validators/types.ts +0 -2
  168. package/src/vks/index.ts +1 -1
  169. package/src/vks/{vk_data.ts → vk_witness_data.ts} +6 -6
  170. package/dest/block/proposal/committee_attestation.d.ts +0 -34
  171. package/dest/block/proposal/committee_attestation.d.ts.map +0 -1
  172. package/dest/block/proposal/committee_attestation.js +0 -59
  173. package/dest/block/proposal/index.d.ts +0 -2
  174. package/dest/block/proposal/index.d.ts.map +0 -1
  175. package/dest/block/proposal/index.js +0 -1
  176. package/dest/kernel/padded_side_effects.d.ts +0 -26
  177. package/dest/kernel/padded_side_effects.d.ts.map +0 -1
  178. package/dest/kernel/padded_side_effects.js +0 -51
  179. package/dest/vks/vk_data.d.ts.map +0 -1
  180. package/src/block/proposal/committee_attestation.ts +0 -70
  181. package/src/block/proposal/index.ts +0 -1
  182. package/src/kernel/padded_side_effects.ts +0 -73
@@ -44,7 +44,7 @@ export interface P2PApiWithoutAttestations {
44
44
  getPeers(includePending?: boolean): Promise<PeerInfo[]>;
45
45
  }
46
46
 
47
- export interface P2PApiWithAttestations extends P2PApiWithoutAttestations {
47
+ export interface P2PClient extends P2PApiWithoutAttestations {
48
48
  /**
49
49
  * Queries the Attestation pool for attestations for the given slot
50
50
  *
@@ -53,19 +53,13 @@ export interface P2PApiWithAttestations extends P2PApiWithoutAttestations {
53
53
  * @returns BlockAttestations
54
54
  */
55
55
  getAttestationsForSlot(slot: bigint, proposalId?: string): Promise<BlockAttestation[]>;
56
- }
57
56
 
58
- export interface P2PClient extends P2PApiWithAttestations {
59
57
  /** Manually adds an attestation to the p2p client attestation pool. */
60
58
  addAttestation(attestation: BlockAttestation): Promise<void>;
61
59
  }
62
60
 
63
61
  export type P2PApi<T extends P2PClientType = P2PClientType.Full> = T extends P2PClientType.Full
64
- ? P2PApiWithAttestations
65
- : P2PApiWithoutAttestations;
66
-
67
- export type P2PApiFull<T extends P2PClientType = P2PClientType.Full> = T extends P2PClientType.Full
68
- ? P2PApiWithAttestations & P2PClient
62
+ ? P2PClient & P2PApiWithoutAttestations
69
63
  : P2PApiWithoutAttestations;
70
64
 
71
65
  export const P2PApiSchema: ApiSchemaFor<P2PApi> = {
@@ -77,4 +71,5 @@ export const P2PApiSchema: ApiSchemaFor<P2PApi> = {
77
71
  getPendingTxCount: z.function().returns(schemas.Integer),
78
72
  getEncodedEnr: z.function().returns(z.string().optional()),
79
73
  getPeers: z.function().args(optional(z.boolean())).returns(z.array(PeerInfoSchema)),
74
+ addAttestation: z.function().args(BlockAttestation.schema).returns(z.void()),
80
75
  };
@@ -1,5 +1,5 @@
1
1
  import {
2
- AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
2
+ AVM_PROOF_LENGTH_IN_FIELDS,
3
3
  NESTED_RECURSIVE_PROOF_LENGTH,
4
4
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
5
  RECURSIVE_PROOF_LENGTH,
@@ -179,7 +179,7 @@ export type ProvingJobInputsMap = {
179
179
  export const ProvingJobResult = z.discriminatedUnion('type', [
180
180
  z.object({
181
181
  type: z.literal(ProvingRequestType.PUBLIC_VM),
182
- result: schemaForRecursiveProofAndVerificationKey(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED),
182
+ result: schemaForRecursiveProofAndVerificationKey(AVM_PROOF_LENGTH_IN_FIELDS),
183
183
  }),
184
184
  z.object({
185
185
  type: z.literal(ProvingRequestType.PRIVATE_BASE_ROLLUP),
@@ -249,7 +249,7 @@ export const ProvingJobResult = z.discriminatedUnion('type', [
249
249
  ]);
250
250
  export type ProvingJobResult = z.infer<typeof ProvingJobResult>;
251
251
  export type ProvingJobResultsMap = {
252
- [ProvingRequestType.PUBLIC_VM]: ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>;
252
+ [ProvingRequestType.PUBLIC_VM]: ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>;
253
253
  [ProvingRequestType.PRIVATE_BASE_ROLLUP]: PublicInputsAndRecursiveProof<
254
254
  BaseOrMergeRollupPublicInputs,
255
255
  typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH
@@ -1,5 +1,5 @@
1
1
  import type {
2
- AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED,
2
+ AVM_PROOF_LENGTH_IN_FIELDS,
3
3
  NESTED_RECURSIVE_PROOF_LENGTH,
4
4
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
5
5
  RECURSIVE_PROOF_LENGTH,
@@ -149,10 +149,9 @@ export interface ServerCircuitProver {
149
149
  */
150
150
  getAvmProof(
151
151
  inputs: AvmCircuitInputs,
152
- skipPublicInputsValidation?: boolean, // TODO(#14234)[Unconditional PIs validation]: Remove.
153
152
  signal?: AbortSignal,
154
153
  epochNumber?: number,
155
- ): Promise<ProofAndVerificationKey<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>>;
154
+ ): Promise<ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>>;
156
155
  }
157
156
 
158
157
  /**
@@ -148,9 +148,9 @@ export function findPrivateKernelResetDimensions(
148
148
  ? isEnough
149
149
  : // If isInner is true, it's a reset to prevent overflow. The following must be zero because siloing can't be done at the moment.
150
150
  (dimensions: PrivateKernelResetDimensions) =>
151
- dimensions.NOTE_HASH_SILOING === 0 &&
152
- dimensions.NULLIFIER_SILOING === 0 &&
153
- dimensions.PRIVATE_LOG_SILOING === 0 &&
151
+ dimensions.NOTE_HASH_SILOING_AMOUNT === 0 &&
152
+ dimensions.NULLIFIER_SILOING_AMOUNT === 0 &&
153
+ dimensions.PRIVATE_LOG_SILOING_AMOUNT === 0 &&
154
154
  isEnough(dimensions);
155
155
 
156
156
  const options = [
@@ -5,18 +5,20 @@ export class KeyValidationHint {
5
5
  constructor(
6
6
  /** Master secret key used to derive sk_app and pk_m. */
7
7
  public skM: GrumpkinScalar,
8
+ /** Index of the request in the array of hints. */
9
+ public requestIndex: number,
8
10
  ) {}
9
11
 
10
12
  static fromBuffer(buffer: Buffer | BufferReader) {
11
13
  const reader = BufferReader.asReader(buffer);
12
- return new KeyValidationHint(reader.readObject(GrumpkinScalar));
14
+ return new KeyValidationHint(reader.readObject(GrumpkinScalar), reader.readNumber());
13
15
  }
14
16
 
15
17
  toBuffer() {
16
- return serializeToBuffer(this.skM);
18
+ return serializeToBuffer(this.skM, this.requestIndex);
17
19
  }
18
20
 
19
- static empty() {
20
- return new KeyValidationHint(GrumpkinScalar.zero());
21
+ static nada(keyValidationRequestLen: number) {
22
+ return new KeyValidationHint(GrumpkinScalar.zero(), keyValidationRequestLen);
21
23
  }
22
24
  }
@@ -10,8 +10,8 @@ export class PrivateKernelResetHints<
10
10
  NH_RR_SETTLED extends number,
11
11
  NLL_RR_PENDING extends number,
12
12
  NLL_RR_SETTLED extends number,
13
- KEY_VALIDATION_HINTS_LEN extends number,
14
- TRANSIENT_DATA_HINTS_LEN extends number,
13
+ KEY_VALIDATION_REQUESTS extends number,
14
+ NUM_TRANSIENT_DATA_INDEX_HINTS extends number,
15
15
  > {
16
16
  constructor(
17
17
  /**
@@ -25,11 +25,11 @@ export class PrivateKernelResetHints<
25
25
  /**
26
26
  * Contains hints for key validation request.
27
27
  */
28
- public keyValidationHints: Tuple<KeyValidationHint, KEY_VALIDATION_HINTS_LEN>,
28
+ public keyValidationHints: Tuple<KeyValidationHint, KEY_VALIDATION_REQUESTS>,
29
29
  /**
30
30
  * Contains hints for the transient note hashes to locate corresponding nullifiers.
31
31
  */
32
- public transientDataIndexHints: Tuple<TransientDataIndexHint, TRANSIENT_DATA_HINTS_LEN>,
32
+ public transientDataIndexHints: Tuple<TransientDataIndexHint, NUM_TRANSIENT_DATA_INDEX_HINTS>,
33
33
  /**
34
34
  * The "final" minRevertibleSideEffectCounter of a tx, to split the data for squashing.
35
35
  * Not the minRevertibleSideEffectCounter at the point the reset circuit is run.
@@ -47,30 +47,39 @@ export class PrivateKernelResetHints<
47
47
  );
48
48
  }
49
49
 
50
- trimToSizes(
51
- numNoteHashReadRequestPending: number,
52
- numNoteHashReadRequestSettled: number,
53
- numNullifierReadRequestPending: number,
54
- numNullifierReadRequestSettled: number,
55
- numKeyValidationHints: number,
56
- numTransientDataIndexHints: number,
57
- ) {
58
- // Noir does not allow empty arrays. So we make the minimum array size 1.
59
- // There is a constant for each dimension, coded in the circuit that indicates how many hints should be applied.
60
- // The circuit is selected based on the dimension sizes, not the hint array sizes created here.
61
- const useSize = (num: number) => Math.max(num, 1);
62
-
50
+ trimToSizes<
51
+ NEW_NH_RR_PENDING extends number,
52
+ NEW_NH_RR_SETTLED extends number,
53
+ NEW_NLL_RR_PENDING extends number,
54
+ NEW_NLL_RR_SETTLED extends number,
55
+ NEW_KEY_VALIDATION_REQUESTS extends number,
56
+ NUM_TRANSIENT_DATA_INDEX_HINTS extends number,
57
+ >(
58
+ numNoteHashReadRequestPending: NEW_NH_RR_PENDING,
59
+ numNoteHashReadRequestSettled: NEW_NH_RR_SETTLED,
60
+ numNullifierReadRequestPending: NEW_NLL_RR_PENDING,
61
+ numNullifierReadRequestSettled: NEW_NLL_RR_SETTLED,
62
+ numKeyValidationRequests: NEW_KEY_VALIDATION_REQUESTS,
63
+ numTransientDataIndexHints: NUM_TRANSIENT_DATA_INDEX_HINTS,
64
+ ): PrivateKernelResetHints<
65
+ NEW_NH_RR_PENDING,
66
+ NEW_NH_RR_SETTLED,
67
+ NEW_NLL_RR_PENDING,
68
+ NEW_NLL_RR_SETTLED,
69
+ NEW_KEY_VALIDATION_REQUESTS,
70
+ NUM_TRANSIENT_DATA_INDEX_HINTS
71
+ > {
63
72
  return new PrivateKernelResetHints(
64
- this.noteHashReadRequestHints.trimToSizes(
65
- useSize(numNoteHashReadRequestPending),
66
- useSize(numNoteHashReadRequestSettled),
67
- ),
68
- this.nullifierReadRequestHints.trimToSizes(
69
- useSize(numNullifierReadRequestPending),
70
- useSize(numNullifierReadRequestSettled),
71
- ),
72
- this.keyValidationHints.slice(0, useSize(numKeyValidationHints)),
73
- this.transientDataIndexHints.slice(0, useSize(numTransientDataIndexHints)),
73
+ this.noteHashReadRequestHints.trimToSizes(numNoteHashReadRequestPending, numNoteHashReadRequestSettled),
74
+ this.nullifierReadRequestHints.trimToSizes(numNullifierReadRequestPending, numNullifierReadRequestSettled),
75
+ this.keyValidationHints.slice(0, numKeyValidationRequests) as Tuple<
76
+ KeyValidationHint,
77
+ NEW_KEY_VALIDATION_REQUESTS
78
+ >,
79
+ this.transientDataIndexHints.slice(0, numTransientDataIndexHints) as Tuple<
80
+ TransientDataIndexHint,
81
+ NUM_TRANSIENT_DATA_INDEX_HINTS
82
+ >,
74
83
  this.validationRequestsSplitCounter,
75
84
  );
76
85
  }
@@ -84,23 +93,23 @@ export class PrivateKernelResetHints<
84
93
  NH_RR_SETTLED extends number,
85
94
  NLL_RR_PENDING extends number,
86
95
  NLL_RR_SETTLED extends number,
87
- KEY_VALIDATION_HINTS_LEN extends number,
88
- TRANSIENT_DATA_HINTS_LEN extends number,
96
+ KEY_VALIDATION_REQUESTS extends number,
97
+ NUM_TRANSIENT_DATA_INDEX_HINTS extends number,
89
98
  >(
90
99
  buffer: Buffer | BufferReader,
91
100
  numNoteHashReadRequestPending: NH_RR_PENDING,
92
101
  numNoteHashReadRequestSettled: NH_RR_SETTLED,
93
102
  numNullifierReadRequestPending: NLL_RR_PENDING,
94
103
  numNullifierReadRequestSettled: NLL_RR_SETTLED,
95
- numKeyValidationHints: KEY_VALIDATION_HINTS_LEN,
96
- numTransientDataIndexHints: TRANSIENT_DATA_HINTS_LEN,
104
+ numNullifierKeys: KEY_VALIDATION_REQUESTS,
105
+ numTransientDataIndexHints: NUM_TRANSIENT_DATA_INDEX_HINTS,
97
106
  ): PrivateKernelResetHints<
98
107
  NH_RR_PENDING,
99
108
  NH_RR_SETTLED,
100
109
  NLL_RR_PENDING,
101
110
  NLL_RR_SETTLED,
102
- KEY_VALIDATION_HINTS_LEN,
103
- TRANSIENT_DATA_HINTS_LEN
111
+ KEY_VALIDATION_REQUESTS,
112
+ NUM_TRANSIENT_DATA_INDEX_HINTS
104
113
  > {
105
114
  const reader = BufferReader.asReader(buffer);
106
115
  return new PrivateKernelResetHints(
@@ -112,7 +121,7 @@ export class PrivateKernelResetHints<
112
121
  fromBuffer: buf =>
113
122
  nullifierReadRequestHintsFromBuffer(buf, numNullifierReadRequestPending, numNullifierReadRequestSettled),
114
123
  }),
115
- reader.readArray(numKeyValidationHints, KeyValidationHint),
124
+ reader.readArray(numNullifierKeys, KeyValidationHint),
116
125
  reader.readArray(numTransientDataIndexHints, TransientDataIndexHint),
117
126
  reader.readNumber(),
118
127
  );
@@ -94,8 +94,8 @@ export class SettledReadHint<TREE_HEIGHT extends number, LEAF_PREIMAGE extends B
94
94
  */
95
95
  export class ReadRequestResetHints<
96
96
  READ_REQUEST_LEN extends number,
97
- PENDING_READ_HINTS_LEN extends number,
98
- SETTLED_READ_HINTS_LEN extends number,
97
+ NUM_PENDING_READS extends number,
98
+ NUM_SETTLED_READS extends number,
99
99
  TREE_HEIGHT extends number,
100
100
  LEAF_PREIMAGE extends Bufferable,
101
101
  > {
@@ -104,29 +104,23 @@ export class ReadRequestResetHints<
104
104
  /**
105
105
  * The hints for read requests reading pending values.
106
106
  */
107
- public pendingReadHints: Tuple<PendingReadHint, PENDING_READ_HINTS_LEN>,
107
+ public pendingReadHints: Tuple<PendingReadHint, NUM_PENDING_READS>,
108
108
  /**
109
109
  * The hints for read requests reading settled values.
110
110
  */
111
- public settledReadHints: Tuple<SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>, SETTLED_READ_HINTS_LEN>,
111
+ public settledReadHints: Tuple<SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>, NUM_SETTLED_READS>,
112
112
  ) {}
113
113
 
114
- trimToSizes<NEW_PENDING_READ_HINTS_LEN extends number, NEW_SETTLED_READ_HINTS_LEN extends number>(
115
- numPendingReads: NEW_PENDING_READ_HINTS_LEN,
116
- numSettledReads: NEW_SETTLED_READ_HINTS_LEN,
117
- ): ReadRequestResetHints<
118
- READ_REQUEST_LEN,
119
- NEW_PENDING_READ_HINTS_LEN,
120
- NEW_SETTLED_READ_HINTS_LEN,
121
- TREE_HEIGHT,
122
- LEAF_PREIMAGE
123
- > {
114
+ trimToSizes<NEW_NUM_PENDING_READS extends number, NEW_NUM_SETTLED_READS extends number>(
115
+ numPendingReads: NEW_NUM_PENDING_READS,
116
+ numSettledReads: NEW_NUM_SETTLED_READS,
117
+ ): ReadRequestResetHints<READ_REQUEST_LEN, NEW_NUM_PENDING_READS, NEW_NUM_SETTLED_READS, TREE_HEIGHT, LEAF_PREIMAGE> {
124
118
  return new ReadRequestResetHints(
125
119
  this.readRequestStatuses,
126
- this.pendingReadHints.slice(0, numPendingReads) as Tuple<PendingReadHint, NEW_PENDING_READ_HINTS_LEN>,
120
+ this.pendingReadHints.slice(0, numPendingReads) as Tuple<PendingReadHint, NEW_NUM_PENDING_READS>,
127
121
  this.settledReadHints.slice(0, numSettledReads) as Tuple<
128
122
  SettledReadHint<TREE_HEIGHT, LEAF_PREIMAGE>,
129
- NEW_SETTLED_READ_HINTS_LEN
123
+ NEW_NUM_SETTLED_READS
130
124
  >,
131
125
  );
132
126
  }
@@ -138,24 +132,18 @@ export class ReadRequestResetHints<
138
132
  */
139
133
  static fromBuffer<
140
134
  READ_REQUEST_LEN extends number,
141
- PENDING_READ_HINTS_LEN extends number,
142
- SETTLED_READ_HINTS_LEN extends number,
135
+ NUM_PENDING_READS extends number,
136
+ NUM_SETTLED_READS extends number,
143
137
  TREE_HEIGHT extends number,
144
138
  LEAF_PREIMAGE extends Bufferable,
145
139
  >(
146
140
  buffer: Buffer | BufferReader,
147
141
  readRequestLen: READ_REQUEST_LEN,
148
- numPendingReads: PENDING_READ_HINTS_LEN,
149
- numSettledReads: SETTLED_READ_HINTS_LEN,
142
+ numPendingReads: NUM_PENDING_READS,
143
+ numSettledReads: NUM_SETTLED_READS,
150
144
  treeHeight: TREE_HEIGHT,
151
145
  leafPreimageFromBuffer: { fromBuffer: (buffer: BufferReader) => LEAF_PREIMAGE },
152
- ): ReadRequestResetHints<
153
- READ_REQUEST_LEN,
154
- PENDING_READ_HINTS_LEN,
155
- SETTLED_READ_HINTS_LEN,
156
- TREE_HEIGHT,
157
- LEAF_PREIMAGE
158
- > {
146
+ ): ReadRequestResetHints<READ_REQUEST_LEN, NUM_PENDING_READS, NUM_SETTLED_READS, TREE_HEIGHT, LEAF_PREIMAGE> {
159
147
  const reader = BufferReader.asReader(buffer);
160
148
  return new ReadRequestResetHints(
161
149
  reader.readArray(readRequestLen, ReadRequestStatus),
@@ -28,4 +28,3 @@ export * from './private_call_request.js';
28
28
  export * from './private_validation_requests.js';
29
29
  export * from './private_kernel_simulated_output.js';
30
30
  export * from './private_kernel_prover_output.js';
31
- export * from './padded_side_effects.js';
@@ -1,6 +1,10 @@
1
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
1
+ import { VK_TREE_HEIGHT } from '@aztec/constants';
2
+ import { makeTuple } from '@aztec/foundation/array';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
2
5
 
3
- import { VkData } from '../vks/index.js';
6
+ import type { UInt32 } from '../types/shared.js';
7
+ import { VerificationKeyData } from '../vks/verification_key.js';
4
8
  import { PrivateKernelCircuitPublicInputs } from './private_kernel_circuit_public_inputs.js';
5
9
 
6
10
  /**
@@ -15,9 +19,17 @@ export class PrivateKernelData {
15
19
  */
16
20
  public publicInputs: PrivateKernelCircuitPublicInputs,
17
21
  /**
18
- * The verification key and the witness of the vk in the vk tree.
22
+ * Verification key of the previous kernel.
19
23
  */
20
- public vkData: VkData,
24
+ public verificationKey: VerificationKeyData,
25
+ /**
26
+ * Index of the previous kernel's vk in a tree of vks.
27
+ */
28
+ public vkIndex: UInt32,
29
+ /**
30
+ * Sibling path of the previous kernel's vk in a tree of vks.
31
+ */
32
+ public vkPath: Tuple<Fr, typeof VK_TREE_HEIGHT>,
21
33
  ) {}
22
34
 
23
35
  /**
@@ -25,15 +37,25 @@ export class PrivateKernelData {
25
37
  * @returns The buffer.
26
38
  */
27
39
  toBuffer() {
28
- return serializeToBuffer(this.publicInputs, this.vkData);
40
+ return serializeToBuffer(this.publicInputs, this.verificationKey, this.vkIndex, this.vkPath);
29
41
  }
30
42
 
31
43
  static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelData {
32
44
  const reader = BufferReader.asReader(buffer);
33
- return new this(reader.readObject(PrivateKernelCircuitPublicInputs), reader.readObject(VkData));
45
+ return new this(
46
+ reader.readObject(PrivateKernelCircuitPublicInputs),
47
+ reader.readObject(VerificationKeyData),
48
+ reader.readNumber(),
49
+ reader.readArray(VK_TREE_HEIGHT, Fr),
50
+ );
34
51
  }
35
52
 
36
53
  static empty(): PrivateKernelData {
37
- return new PrivateKernelData(PrivateKernelCircuitPublicInputs.empty(), VkData.empty());
54
+ return new PrivateKernelData(
55
+ PrivateKernelCircuitPublicInputs.empty(),
56
+ VerificationKeyData.empty(),
57
+ 0,
58
+ makeTuple(VK_TREE_HEIGHT, Fr.zero),
59
+ );
38
60
  }
39
61
  }
@@ -7,7 +7,6 @@ import type {
7
7
  import { serializeToBuffer } from '@aztec/foundation/serialize';
8
8
 
9
9
  import type { PrivateKernelResetHints } from './hints/private_kernel_reset_hints.js';
10
- import type { PaddedSideEffects } from './padded_side_effects.js';
11
10
  import type { PrivateKernelData } from './private_kernel_data.js';
12
11
  import type { PrivateKernelResetDimensions } from './private_kernel_reset_dimensions.js';
13
12
 
@@ -16,24 +15,23 @@ export class PrivateKernelResetCircuitPrivateInputsVariants<
16
15
  NH_RR_SETTLED extends number,
17
16
  NLL_RR_PENDING extends number,
18
17
  NLL_RR_SETTLED extends number,
19
- KEY_VALIDATION_HINTS_LEN extends number,
20
- TRANSIENT_DATA_HINTS_LEN extends number,
18
+ KEY_VALIDATION_REQUESTS extends number,
19
+ NUM_TRANSIENT_DATA_INDEX_HINTS extends number,
21
20
  > {
22
21
  constructor(
23
22
  public previousKernel: PrivateKernelData,
24
- public paddedSideEffects: PaddedSideEffects,
25
23
  public hints: PrivateKernelResetHints<
26
24
  NH_RR_PENDING,
27
25
  NH_RR_SETTLED,
28
26
  NLL_RR_PENDING,
29
27
  NLL_RR_SETTLED,
30
- KEY_VALIDATION_HINTS_LEN,
31
- TRANSIENT_DATA_HINTS_LEN
28
+ KEY_VALIDATION_REQUESTS,
29
+ NUM_TRANSIENT_DATA_INDEX_HINTS
32
30
  >,
33
31
  ) {}
34
32
 
35
33
  toBuffer() {
36
- return serializeToBuffer(this.previousKernel, this.paddedSideEffects, this.hints);
34
+ return serializeToBuffer(this.previousKernel, this.hints);
37
35
  }
38
36
  }
39
37
 
@@ -46,7 +44,6 @@ export class PrivateKernelResetCircuitPrivateInputs {
46
44
  * The previous kernel data
47
45
  */
48
46
  public previousKernel: PrivateKernelData,
49
- public paddedSideEffects: PaddedSideEffects,
50
47
  public hints: PrivateKernelResetHints<
51
48
  typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
52
49
  typeof MAX_NOTE_HASH_READ_REQUESTS_PER_TX,
@@ -63,18 +60,18 @@ export class PrivateKernelResetCircuitPrivateInputs {
63
60
  * @returns The buffer.
64
61
  */
65
62
  toBuffer() {
66
- return serializeToBuffer(this.previousKernel, this.paddedSideEffects, this.hints, this.dimensions);
63
+ return serializeToBuffer(this.previousKernel, this.hints, this.dimensions);
67
64
  }
68
65
 
69
66
  trimToSizes() {
70
67
  const hints = this.hints.trimToSizes(
71
- this.dimensions.NOTE_HASH_PENDING_READ,
72
- this.dimensions.NOTE_HASH_SETTLED_READ,
73
- this.dimensions.NULLIFIER_PENDING_READ,
74
- this.dimensions.NULLIFIER_SETTLED_READ,
75
- this.dimensions.KEY_VALIDATION,
76
- this.dimensions.TRANSIENT_DATA_SQUASHING,
68
+ this.dimensions.NOTE_HASH_PENDING_AMOUNT,
69
+ this.dimensions.NOTE_HASH_SETTLED_AMOUNT,
70
+ this.dimensions.NULLIFIER_PENDING_AMOUNT,
71
+ this.dimensions.NULLIFIER_SETTLED_AMOUNT,
72
+ this.dimensions.NULLIFIER_KEYS,
73
+ this.dimensions.TRANSIENT_DATA_AMOUNT,
77
74
  );
78
- return new PrivateKernelResetCircuitPrivateInputsVariants(this.previousKernel, this.paddedSideEffects, hints);
75
+ return new PrivateKernelResetCircuitPrivateInputsVariants(this.previousKernel, hints);
79
76
  }
80
77
  }
@@ -3,28 +3,28 @@ import type { FieldsOf } from '@aztec/foundation/types';
3
3
 
4
4
  export class PrivateKernelResetDimensions {
5
5
  constructor(
6
- public NOTE_HASH_PENDING_READ: number,
7
- public NOTE_HASH_SETTLED_READ: number,
8
- public NULLIFIER_PENDING_READ: number,
9
- public NULLIFIER_SETTLED_READ: number,
10
- public KEY_VALIDATION: number,
11
- public TRANSIENT_DATA_SQUASHING: number,
12
- public NOTE_HASH_SILOING: number,
13
- public NULLIFIER_SILOING: number,
14
- public PRIVATE_LOG_SILOING: number,
6
+ public NOTE_HASH_PENDING_AMOUNT: number,
7
+ public NOTE_HASH_SETTLED_AMOUNT: number,
8
+ public NULLIFIER_PENDING_AMOUNT: number,
9
+ public NULLIFIER_SETTLED_AMOUNT: number,
10
+ public NULLIFIER_KEYS: number,
11
+ public TRANSIENT_DATA_AMOUNT: number,
12
+ public NOTE_HASH_SILOING_AMOUNT: number,
13
+ public NULLIFIER_SILOING_AMOUNT: number,
14
+ public PRIVATE_LOG_SILOING_AMOUNT: number,
15
15
  ) {}
16
16
 
17
17
  toBuffer() {
18
18
  return serializeToBuffer(
19
- this.NOTE_HASH_PENDING_READ,
20
- this.NOTE_HASH_SETTLED_READ,
21
- this.NULLIFIER_PENDING_READ,
22
- this.NULLIFIER_SETTLED_READ,
23
- this.KEY_VALIDATION,
24
- this.TRANSIENT_DATA_SQUASHING,
25
- this.NOTE_HASH_SILOING,
26
- this.NULLIFIER_SILOING,
27
- this.PRIVATE_LOG_SILOING,
19
+ this.NOTE_HASH_PENDING_AMOUNT,
20
+ this.NOTE_HASH_SETTLED_AMOUNT,
21
+ this.NULLIFIER_PENDING_AMOUNT,
22
+ this.NULLIFIER_SETTLED_AMOUNT,
23
+ this.NULLIFIER_KEYS,
24
+ this.TRANSIENT_DATA_AMOUNT,
25
+ this.NOTE_HASH_SILOING_AMOUNT,
26
+ this.NULLIFIER_SILOING_AMOUNT,
27
+ this.PRIVATE_LOG_SILOING_AMOUNT,
28
28
  );
29
29
  }
30
30
 
@@ -57,15 +57,15 @@ export class PrivateKernelResetDimensions {
57
57
  export type DimensionName = keyof FieldsOf<PrivateKernelResetDimensions>;
58
58
 
59
59
  export const privateKernelResetDimensionNames: DimensionName[] = [
60
- 'NOTE_HASH_PENDING_READ',
61
- 'NOTE_HASH_SETTLED_READ',
62
- 'NULLIFIER_PENDING_READ',
63
- 'NULLIFIER_SETTLED_READ',
64
- 'KEY_VALIDATION',
65
- 'TRANSIENT_DATA_SQUASHING',
66
- 'NOTE_HASH_SILOING',
67
- 'NULLIFIER_SILOING',
68
- 'PRIVATE_LOG_SILOING',
60
+ 'NOTE_HASH_PENDING_AMOUNT',
61
+ 'NOTE_HASH_SETTLED_AMOUNT',
62
+ 'NULLIFIER_PENDING_AMOUNT',
63
+ 'NULLIFIER_SETTLED_AMOUNT',
64
+ 'NULLIFIER_KEYS',
65
+ 'TRANSIENT_DATA_AMOUNT',
66
+ 'NOTE_HASH_SILOING_AMOUNT',
67
+ 'NULLIFIER_SILOING_AMOUNT',
68
+ 'PRIVATE_LOG_SILOING_AMOUNT',
69
69
  ];
70
70
 
71
71
  export interface DimensionConfig {
@@ -1,6 +1,5 @@
1
1
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
2
2
 
3
- import { PaddedSideEffectAmounts } from './padded_side_effects.js';
4
3
  import { PrivateKernelData } from './private_kernel_data.js';
5
4
  import { countAccumulatedItems } from './utils/order_and_comparison.js';
6
5
 
@@ -13,10 +12,6 @@ export class PrivateKernelTailCircuitPrivateInputs {
13
12
  * The previous kernel data
14
13
  */
15
14
  public previousKernel: PrivateKernelData,
16
- /**
17
- * The number of the padded side effects.
18
- */
19
- public paddedSideEffectAmounts: PaddedSideEffectAmounts,
20
15
  ) {}
21
16
 
22
17
  isForPublic() {
@@ -31,7 +26,7 @@ export class PrivateKernelTailCircuitPrivateInputs {
31
26
  * @returns The buffer.
32
27
  */
33
28
  toBuffer() {
34
- return serializeToBuffer(this.previousKernel, this.paddedSideEffectAmounts);
29
+ return serializeToBuffer(this.previousKernel);
35
30
  }
36
31
 
37
32
  /**
@@ -41,9 +36,6 @@ export class PrivateKernelTailCircuitPrivateInputs {
41
36
  */
42
37
  static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelTailCircuitPrivateInputs {
43
38
  const reader = BufferReader.asReader(buffer);
44
- return new PrivateKernelTailCircuitPrivateInputs(
45
- reader.readObject(PrivateKernelData),
46
- reader.readObject(PaddedSideEffectAmounts),
47
- );
39
+ return new PrivateKernelTailCircuitPrivateInputs(reader.readObject(PrivateKernelData));
48
40
  }
49
41
  }
@@ -123,72 +123,6 @@ export class PublicCallRequest {
123
123
  }
124
124
  }
125
125
 
126
- /**
127
- * Represents lengths of arrays of public call requests.
128
- */
129
- export class PublicCallRequestArrayLengths {
130
- constructor(
131
- /**
132
- * Number of setup call requests
133
- */
134
- public setupCalls: number,
135
- /**
136
- * Number of app logic call requests
137
- */
138
- public appLogicCalls: number,
139
- /**
140
- * Whether there is a teardown call request
141
- */
142
- public teardownCall: boolean,
143
- ) {}
144
-
145
- static get schema() {
146
- return z
147
- .object({
148
- setupCalls: z.number(),
149
- appLogicCalls: z.number(),
150
- teardownCall: z.boolean(),
151
- })
152
- .transform(({ setupCalls, appLogicCalls, teardownCall }) => {
153
- return new PublicCallRequestArrayLengths(setupCalls, appLogicCalls, teardownCall);
154
- });
155
- }
156
-
157
- static getFields(fields: FieldsOf<PublicCallRequestArrayLengths>) {
158
- return [fields.setupCalls, fields.appLogicCalls, fields.teardownCall] as const;
159
- }
160
-
161
- static fromFields(fields: Fr[] | FieldReader): PublicCallRequestArrayLengths {
162
- const reader = FieldReader.asReader(fields);
163
- return new PublicCallRequestArrayLengths(reader.readU32(), reader.readU32(), reader.readBoolean());
164
- }
165
-
166
- toFields(): Fr[] {
167
- return serializeToFields(...PublicCallRequestArrayLengths.getFields(this));
168
- }
169
-
170
- static fromBuffer(buffer: Buffer | BufferReader) {
171
- const reader = BufferReader.asReader(buffer);
172
- return new PublicCallRequestArrayLengths(reader.readNumber(), reader.readNumber(), reader.readBoolean());
173
- }
174
-
175
- toBuffer() {
176
- return serializeToBuffer(...PublicCallRequestArrayLengths.getFields(this));
177
- }
178
-
179
- static empty() {
180
- return new PublicCallRequestArrayLengths(0, 0, false);
181
- }
182
-
183
- [inspect.custom]() {
184
- return `PublicCallRequestArrayLengths {
185
- setupCalls: ${this.setupCalls}
186
- appLogicCalls: ${this.appLogicCalls}
187
- teardownCall: ${this.teardownCall}
188
- }`;
189
- }
190
- }
191
-
192
126
  export class CountedPublicCallRequest {
193
127
  constructor(
194
128
  public inner: PublicCallRequest,