@aztec/stdlib 3.0.0-nightly.20250918 → 3.0.0-nightly.20250920

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 (135) hide show
  1. package/dest/avm/avm.d.ts +8 -16
  2. package/dest/avm/avm.d.ts.map +1 -1
  3. package/dest/avm/avm_accumulated_data.d.ts +9 -21
  4. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  5. package/dest/avm/avm_accumulated_data.js +15 -22
  6. package/dest/avm/avm_circuit_public_inputs.d.ts +6 -12
  7. package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
  8. package/dest/avm/avm_proving_request.d.ts +9 -18
  9. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  10. package/dest/interfaces/block-builder.d.ts +1 -0
  11. package/dest/interfaces/block-builder.d.ts.map +1 -1
  12. package/dest/interfaces/epoch-prover.d.ts +4 -4
  13. package/dest/interfaces/epoch-prover.d.ts.map +1 -1
  14. package/dest/interfaces/proving-job.d.ts +78 -88
  15. package/dest/interfaces/proving-job.d.ts.map +1 -1
  16. package/dest/interfaces/proving-job.js +40 -84
  17. package/dest/interfaces/pxe.d.ts +193 -118
  18. package/dest/interfaces/pxe.d.ts.map +1 -1
  19. package/dest/interfaces/pxe.js +6 -37
  20. package/dest/interfaces/server_circuit_prover.d.ts +18 -17
  21. package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
  22. package/dest/logs/log_with_tx_data.d.ts +9 -12
  23. package/dest/logs/log_with_tx_data.d.ts.map +1 -1
  24. package/dest/logs/log_with_tx_data.js +18 -23
  25. package/dest/logs/public_log.d.ts +23 -10
  26. package/dest/logs/public_log.d.ts.map +1 -1
  27. package/dest/logs/public_log.js +117 -42
  28. package/dest/parity/index.d.ts +2 -3
  29. package/dest/parity/index.d.ts.map +1 -1
  30. package/dest/parity/index.js +2 -3
  31. package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +6 -6
  32. package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
  33. package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +5 -5
  34. package/dest/parity/parity_root_private_inputs.d.ts +39 -0
  35. package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
  36. package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
  37. package/dest/proofs/proof_data.d.ts +3 -2
  38. package/dest/proofs/proof_data.d.ts.map +1 -1
  39. package/dest/proofs/proving_request_type.d.ts +5 -5
  40. package/dest/proofs/proving_request_type.d.ts.map +1 -1
  41. package/dest/proofs/proving_request_type.js +5 -5
  42. package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +10 -4
  43. package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
  44. package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +1 -1
  45. package/dest/rollup/{block_root_rollup.d.ts → block_root_rollup_private_inputs.d.ts} +23 -34
  46. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
  47. package/dest/rollup/{block_root_rollup.js → block_root_rollup_private_inputs.js} +7 -7
  48. package/dest/rollup/{checkpoint_merge_rollup.d.ts → checkpoint_merge_rollup_private_inputs.d.ts} +6 -6
  49. package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
  50. package/dest/rollup/{checkpoint_root_rollup.d.ts → checkpoint_root_rollup_private_inputs.d.ts} +14 -8
  51. package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
  52. package/dest/rollup/index.d.ts +10 -11
  53. package/dest/rollup/index.d.ts.map +1 -1
  54. package/dest/rollup/index.js +10 -11
  55. package/dest/rollup/{private_base_rollup_inputs.d.ts → private_tx_base_rollup_private_inputs.d.ts} +7 -7
  56. package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
  57. package/dest/rollup/{private_base_rollup_inputs.js → private_tx_base_rollup_private_inputs.js} +6 -6
  58. package/dest/rollup/{public_base_rollup_inputs.d.ts → public_tx_base_rollup_private_inputs.d.ts} +7 -7
  59. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
  60. package/dest/rollup/{public_base_rollup_inputs.js → public_tx_base_rollup_private_inputs.js} +6 -6
  61. package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
  62. package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
  63. package/dest/rollup/root_rollup_private_inputs.js +69 -0
  64. package/dest/rollup/{root_rollup.d.ts → root_rollup_public_inputs.d.ts} +2 -65
  65. package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
  66. package/dest/rollup/{root_rollup.js → root_rollup_public_inputs.js} +1 -66
  67. package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
  68. package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
  69. package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
  70. package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +11 -11
  71. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
  72. package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +13 -13
  73. package/dest/stats/stats.d.ts +1 -1
  74. package/dest/stats/stats.d.ts.map +1 -1
  75. package/dest/tests/factories.d.ts +16 -31
  76. package/dest/tests/factories.d.ts.map +1 -1
  77. package/dest/tests/factories.js +32 -49
  78. package/dest/tx/processed_tx.js +1 -1
  79. package/dest/tx/tx_effect.d.ts.map +1 -1
  80. package/dest/tx/tx_effect.js +9 -10
  81. package/package.json +8 -8
  82. package/src/avm/avm_accumulated_data.ts +15 -29
  83. package/src/interfaces/block-builder.ts +1 -0
  84. package/src/interfaces/epoch-prover.ts +3 -3
  85. package/src/interfaces/proving-job.ts +54 -93
  86. package/src/interfaces/pxe.ts +4 -184
  87. package/src/interfaces/server_circuit_prover.ts +24 -29
  88. package/src/logs/log_with_tx_data.ts +14 -24
  89. package/src/logs/public_log.ts +120 -58
  90. package/src/parity/index.ts +2 -3
  91. package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +6 -6
  92. package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
  93. package/src/proofs/proof_data.ts +4 -2
  94. package/src/proofs/proving_request_type.ts +6 -5
  95. package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +5 -3
  96. package/src/rollup/{block_root_rollup.ts → block_root_rollup_private_inputs.ts} +13 -26
  97. package/src/rollup/{checkpoint_merge_rollup.ts → checkpoint_merge_rollup_private_inputs.ts} +3 -4
  98. package/src/rollup/{checkpoint_root_rollup.ts → checkpoint_root_rollup_private_inputs.ts} +6 -4
  99. package/src/rollup/index.ts +10 -11
  100. package/src/rollup/{private_base_rollup_inputs.ts → private_tx_base_rollup_private_inputs.ts} +9 -9
  101. package/src/rollup/{public_base_rollup_inputs.ts → public_tx_base_rollup_private_inputs.ts} +9 -9
  102. package/src/rollup/root_rollup_private_inputs.ts +90 -0
  103. package/src/rollup/{root_rollup.ts → root_rollup_public_inputs.ts} +1 -86
  104. package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
  105. package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +11 -11
  106. package/src/stats/stats.ts +18 -17
  107. package/src/tests/factories.ts +33 -80
  108. package/src/tx/processed_tx.ts +1 -1
  109. package/src/tx/tx_effect.ts +9 -8
  110. package/dest/parity/base_parity_inputs.d.ts.map +0 -1
  111. package/dest/parity/root_parity_input.d.ts +0 -52
  112. package/dest/parity/root_parity_input.d.ts.map +0 -1
  113. package/dest/parity/root_parity_input.js +0 -50
  114. package/dest/parity/root_parity_inputs.d.ts +0 -37
  115. package/dest/parity/root_parity_inputs.d.ts.map +0 -1
  116. package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
  117. package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
  118. package/dest/rollup/block_root_rollup.d.ts.map +0 -1
  119. package/dest/rollup/checkpoint_merge_rollup.d.ts.map +0 -1
  120. package/dest/rollup/checkpoint_root_rollup.d.ts.map +0 -1
  121. package/dest/rollup/merge_rollup.d.ts.map +0 -1
  122. package/dest/rollup/previous_rollup_data.d.ts +0 -47
  123. package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
  124. package/dest/rollup/previous_rollup_data.js +0 -37
  125. package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
  126. package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
  127. package/dest/rollup/rollup_proof_data.d.ts +0 -10
  128. package/dest/rollup/rollup_proof_data.d.ts.map +0 -1
  129. package/dest/rollup/rollup_proof_data.js +0 -1
  130. package/dest/rollup/root_rollup.d.ts.map +0 -1
  131. package/src/parity/root_parity_input.ts +0 -71
  132. package/src/rollup/previous_rollup_data.ts +0 -48
  133. package/src/rollup/rollup_proof_data.ts +0 -12
  134. /package/dest/rollup/{checkpoint_merge_rollup.js → checkpoint_merge_rollup_private_inputs.js} +0 -0
  135. /package/dest/rollup/{checkpoint_root_rollup.js → checkpoint_root_rollup_private_inputs.js} +0 -0
@@ -1,28 +1,113 @@
1
- import { PUBLIC_LOG_LENGTH, PUBLIC_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
2
- import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
3
- import { padArrayEnd } from '@aztec/foundation/collection';
1
+ import { FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH, PUBLIC_LOG_HEADER_LENGTH } from '@aztec/constants';
2
+ import type { FieldsOf } from '@aztec/foundation/array';
4
3
  import { Fr } from '@aztec/foundation/fields';
5
4
  import { type ZodFor, schemas } from '@aztec/foundation/schemas';
6
- import {
7
- BufferReader,
8
- FieldReader,
9
- type Tuple,
10
- serializeToBuffer,
11
- serializeToFields,
12
- } from '@aztec/foundation/serialize';
5
+ import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
13
6
 
14
7
  import { inspect } from 'util';
15
8
  import { z } from 'zod';
16
9
 
17
10
  import { AztecAddress } from '../aztec-address/index.js';
18
11
 
19
- export class PublicLog {
20
- static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PUBLIC_LOG_LENGTH;
12
+ function totalSizeInFields(logs: PublicLog[]) {
13
+ return logs.reduce((acc, log) => acc + log.sizeInFields(), 0);
14
+ }
15
+
16
+ // This class represents logs in the same format as noir does, with a bounded maximum length.
17
+ export class FlatPublicLogs {
18
+ // We don't use tuple here because FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH is too large
19
+ constructor(
20
+ public length: number,
21
+ public payload: Fr[],
22
+ ) {
23
+ if (payload.length !== FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH) {
24
+ throw new Error('Invalid payload given to FlatPublicLogs');
25
+ }
26
+ if (length > payload.length) {
27
+ throw new Error('Invalid length given to FlatPublicLogs');
28
+ }
29
+ }
30
+
31
+ private static fromUnpaddedPayload(payload: Fr[]) {
32
+ const length = payload.length;
33
+ return new FlatPublicLogs(length, [...payload, ...Array(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH - length).fill(Fr.ZERO)]);
34
+ }
35
+
36
+ // In blobs, the actual nonempty length of the logs is encoded with the prefix, and then we have the non-padded payload.
37
+ static fromBlobFields(length: number, fields: Fr[] | FieldReader) {
38
+ const reader = FieldReader.asReader(fields);
39
+ const payload = reader.readFieldArray(length);
40
+ return this.fromUnpaddedPayload(payload);
41
+ }
42
+
43
+ toBlobFields() {
44
+ return this.payload.slice(0, this.length);
45
+ }
46
+
47
+ static fromLogs(logs: PublicLog[]) {
48
+ return this.fromUnpaddedPayload(logs.flatMap(log => log.toFields()));
49
+ }
50
+
51
+ toLogs() {
52
+ const reader = FieldReader.asReader(this.payload);
53
+ const logs = [];
54
+ while (totalSizeInFields(logs) < this.length) {
55
+ logs.push(PublicLog.fromFields(reader));
56
+ }
57
+ if (totalSizeInFields(logs) !== this.length) {
58
+ throw new Error('Wrong length in FlatPublicLogs');
59
+ }
60
+ return logs;
61
+ }
62
+
63
+ static get schema(): ZodFor<FlatPublicLogs> {
64
+ return z
65
+ .object({
66
+ length: z.number(),
67
+ payload: z.array(schemas.Fr).min(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH).max(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH),
68
+ })
69
+ .transform(({ length, payload }) => new FlatPublicLogs(length, payload));
70
+ }
71
+
72
+ toBuffer(): Buffer {
73
+ return serializeToBuffer(this.length, this.payload.slice(0, this.length));
74
+ }
75
+
76
+ static fromBuffer(buffer: Buffer | BufferReader) {
77
+ const reader = BufferReader.asReader(buffer);
78
+ const length = reader.readNumber();
79
+ return this.fromUnpaddedPayload(reader.readArray(length, Fr));
80
+ }
21
81
 
82
+ // ToFields and fromFields expect the noir style representation, with constant length payload.
83
+ toFields(): Fr[] {
84
+ return [new Fr(this.length), ...this.payload];
85
+ }
86
+
87
+ static fromFields(fields: Fr[] | FieldReader) {
88
+ const reader = FieldReader.asReader(fields);
89
+ // We need to do this because field reader returns tuples, which break the type system on these sizes.
90
+ const length = reader.readU32();
91
+ const payload: Fr[] = [];
92
+ for (let i = 0; i < FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH; ++i) {
93
+ payload.push(reader.readField());
94
+ }
95
+ return new FlatPublicLogs(length, payload);
96
+ }
97
+
98
+ static empty() {
99
+ return new FlatPublicLogs(0, Array(FLAT_PUBLIC_LOGS_PAYLOAD_LENGTH).fill(Fr.ZERO));
100
+ }
101
+
102
+ isEmpty() {
103
+ return this.length === 0;
104
+ }
105
+ }
106
+
107
+ export class PublicLog {
22
108
  constructor(
23
109
  public contractAddress: AztecAddress,
24
- public fields: Tuple<Fr, typeof PUBLIC_LOG_SIZE_IN_FIELDS>,
25
- public emittedLength: number,
110
+ public fields: Fr[],
26
111
  ) {}
27
112
 
28
113
  static from(fields: FieldsOf<PublicLog>) {
@@ -30,104 +115,81 @@ export class PublicLog {
30
115
  }
31
116
 
32
117
  static getFields(fields: FieldsOf<PublicLog>) {
33
- return [fields.contractAddress, fields.fields, fields.emittedLength] as const;
118
+ return [fields.contractAddress, fields.fields] as const;
34
119
  }
35
120
 
36
121
  toFields(): Fr[] {
37
- return serializeToFields(...PublicLog.getFields(this));
122
+ return [new Fr(this.fields.length), this.contractAddress.toField(), ...this.fields];
38
123
  }
39
124
 
40
125
  static fromFields(fields: Fr[] | FieldReader) {
41
126
  const reader = FieldReader.asReader(fields);
42
- return new PublicLog(
43
- reader.readObject(AztecAddress),
44
- reader.readFieldArray(PUBLIC_LOG_SIZE_IN_FIELDS),
45
- reader.readU32(),
46
- );
127
+ const fieldsLength = reader.readU32();
128
+ return new PublicLog(reader.readObject(AztecAddress), reader.readFieldArray(fieldsLength));
47
129
  }
48
130
 
49
- getEmittedFields() {
50
- return this.fields.slice(0, this.emittedLength);
51
- }
52
-
53
- getEmittedFieldsWithoutTag() {
54
- return this.fields.slice(1, this.emittedLength);
131
+ sizeInFields() {
132
+ return this.fields.length + PUBLIC_LOG_HEADER_LENGTH;
55
133
  }
56
134
 
57
- toBlobFields(): Fr[] {
58
- return [new Fr(this.emittedLength), this.contractAddress.toField()].concat(this.getEmittedFields());
135
+ getEmittedFields() {
136
+ return this.fields.slice(0);
59
137
  }
60
138
 
61
- static fromBlobFields(fields: Fr[] | FieldReader) {
62
- const reader = FieldReader.asReader(fields);
63
- const emittedLength = reader.readU32();
64
- const contractAddress = reader.readObject(AztecAddress);
65
- const emittedFields = reader.readFieldArray(emittedLength);
66
- return new PublicLog(
67
- contractAddress,
68
- padArrayEnd(emittedFields, Fr.ZERO, PUBLIC_LOG_SIZE_IN_FIELDS),
69
- emittedLength,
70
- );
139
+ getEmittedFieldsWithoutTag() {
140
+ return this.fields.slice(1);
71
141
  }
72
142
 
73
143
  isEmpty() {
74
- return this.contractAddress.isZero() && this.fields.every(f => f.isZero()) && this.emittedLength === 0;
144
+ return this.contractAddress.isZero() && this.fields.length === 0;
75
145
  }
76
146
 
77
147
  static empty() {
78
- return new PublicLog(AztecAddress.ZERO, makeTuple(PUBLIC_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
148
+ return new PublicLog(AztecAddress.ZERO, []);
79
149
  }
80
150
 
81
151
  toBuffer(): Buffer {
82
- return serializeToBuffer(...PublicLog.getFields(this));
152
+ return serializeToBuffer(this.fields.length, this.contractAddress, this.fields);
83
153
  }
84
154
 
85
155
  static fromBuffer(buffer: Buffer | BufferReader) {
86
156
  const reader = BufferReader.asReader(buffer);
87
- return new PublicLog(
88
- reader.readObject(AztecAddress),
89
- reader.readArray(PUBLIC_LOG_SIZE_IN_FIELDS, Fr),
90
- reader.readNumber(),
91
- );
157
+ const fieldsLength = reader.readNumber();
158
+ return new PublicLog(reader.readObject(AztecAddress), reader.readArray(fieldsLength, Fr));
92
159
  }
93
160
 
94
161
  static async random() {
95
162
  return new PublicLog(
96
163
  await AztecAddress.random(),
97
- makeTuple(PUBLIC_LOG_SIZE_IN_FIELDS, Fr.random),
98
- PUBLIC_LOG_SIZE_IN_FIELDS,
164
+ Array.from({ length: 10 }, () => Fr.random()),
99
165
  );
100
166
  }
101
167
 
102
168
  equals(other: this) {
103
169
  return (
170
+ this.fields.length === other.fields.length &&
104
171
  this.contractAddress.equals(other.contractAddress) &&
105
- this.fields.every((field, i) => field.equals(other.fields[i])) &&
106
- this.emittedLength === other.emittedLength
172
+ this.fields.every((field, i) => field.equals(other.fields[i]))
107
173
  );
108
174
  }
109
175
 
110
176
  toHumanReadable(): string {
111
- return `PublicLog: (contractAddress: ${this.contractAddress} fields: ${this.fields}) emittedLength: ${this.emittedLength}`;
177
+ return `PublicLog: (contractAddress: ${this.contractAddress} fields: ${this.fields})`;
112
178
  }
113
179
 
114
180
  static get schema(): ZodFor<PublicLog> {
115
181
  return z
116
182
  .object({
117
183
  contractAddress: AztecAddress.schema,
118
- fields: z.array(schemas.Fr).refine(arr => arr.length === PUBLIC_LOG_SIZE_IN_FIELDS),
119
- emittedLength: z.number(),
184
+ fields: z.array(schemas.Fr),
120
185
  })
121
- .transform(({ contractAddress, fields, emittedLength }) =>
122
- PublicLog.fromFields([contractAddress.toField(), ...fields, new Fr(emittedLength)]),
123
- );
186
+ .transform(({ contractAddress, fields }) => PublicLog.from({ contractAddress, fields }));
124
187
  }
125
188
 
126
189
  [inspect.custom](): string {
127
190
  return `PublicLog {
128
191
  contractAddress: ${inspect(this.contractAddress)},
129
192
  fields: [${this.fields.map(x => inspect(x)).join(', ')}],
130
- emittedLength: ${this.emittedLength},
131
193
  }`;
132
194
  }
133
195
  }
@@ -1,4 +1,3 @@
1
- export * from './base_parity_inputs.js';
1
+ export * from './parity_base_private_inputs.js';
2
2
  export * from './parity_public_inputs.js';
3
- export * from './root_parity_input.js';
4
- export * from './root_parity_inputs.js';
3
+ export * from './parity_root_private_inputs.js';
@@ -4,7 +4,7 @@ import { bufferSchemaFor } from '@aztec/foundation/schemas';
4
4
  import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
5
5
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
6
6
 
7
- export class BaseParityInputs {
7
+ export class ParityBasePrivateInputs {
8
8
  constructor(
9
9
  /** Aggregated proof of all the parity circuit iterations. */
10
10
  public readonly msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>,
@@ -16,11 +16,11 @@ export class BaseParityInputs {
16
16
  array: Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP>,
17
17
  index: number,
18
18
  vkTreeRoot: Fr,
19
- ): BaseParityInputs {
19
+ ): ParityBasePrivateInputs {
20
20
  const start = index * NUM_MSGS_PER_BASE_PARITY;
21
21
  const end = start + NUM_MSGS_PER_BASE_PARITY;
22
22
  const msgs = array.slice(start, end);
23
- return new BaseParityInputs(msgs as Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>, vkTreeRoot);
23
+ return new ParityBasePrivateInputs(msgs as Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>, vkTreeRoot);
24
24
  }
25
25
 
26
26
  /** Serializes the inputs to a buffer. */
@@ -39,7 +39,7 @@ export class BaseParityInputs {
39
39
  */
40
40
  static fromBuffer(buffer: Buffer | BufferReader) {
41
41
  const reader = BufferReader.asReader(buffer);
42
- return new BaseParityInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
42
+ return new ParityBasePrivateInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
43
43
  }
44
44
 
45
45
  /**
@@ -48,7 +48,7 @@ export class BaseParityInputs {
48
48
  * @returns - The deserialized inputs.
49
49
  */
50
50
  static fromString(str: string) {
51
- return BaseParityInputs.fromBuffer(hexToBuffer(str));
51
+ return ParityBasePrivateInputs.fromBuffer(hexToBuffer(str));
52
52
  }
53
53
 
54
54
  /** Returns a buffer representation for JSON serialization. */
@@ -58,6 +58,6 @@ export class BaseParityInputs {
58
58
 
59
59
  /** Creates an instance from a hex string. */
60
60
  static get schema() {
61
- return bufferSchemaFor(BaseParityInputs);
61
+ return bufferSchemaFor(ParityBasePrivateInputs);
62
62
  }
63
63
  }
@@ -1,17 +1,18 @@
1
- import { NUM_BASE_PARITY_PER_ROOT_PARITY, RECURSIVE_PROOF_LENGTH } from '@aztec/constants';
1
+ import { NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
2
+ import { makeTuple } from '@aztec/foundation/array';
2
3
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
3
4
  import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
4
5
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
5
6
 
6
- import { RootParityInput } from './root_parity_input.js';
7
+ import { ProofData, type UltraHonkProofData } from '../proofs/proof_data.js';
8
+ import { ParityPublicInputs } from './parity_public_inputs.js';
7
9
 
8
- export class RootParityInputs {
10
+ export type ParityBaseProofData = UltraHonkProofData<ParityPublicInputs>;
11
+
12
+ export class ParityRootPrivateInputs {
9
13
  constructor(
10
- /** Public inputs of children and their proofs. */
11
- public readonly children: Tuple<
12
- RootParityInput<typeof RECURSIVE_PROOF_LENGTH>,
13
- typeof NUM_BASE_PARITY_PER_ROOT_PARITY
14
- >,
14
+ /** Public inputs of the parity base circuits and their proofs and vk data. */
15
+ public readonly children: Tuple<ParityBaseProofData, typeof NUM_BASE_PARITY_PER_ROOT_PARITY>,
15
16
  ) {}
16
17
 
17
18
  /**
@@ -19,7 +20,7 @@ export class RootParityInputs {
19
20
  * @returns The inputs serialized to a buffer.
20
21
  */
21
22
  toBuffer() {
22
- return serializeToBuffer(...this.children);
23
+ return serializeToBuffer(this.children);
23
24
  }
24
25
 
25
26
  /**
@@ -33,25 +34,22 @@ export class RootParityInputs {
33
34
  /**
34
35
  * Deserializes the inputs from a buffer.
35
36
  * @param buffer - The buffer to deserialize from.
36
- * @returns A new RootParityInputs instance.
37
+ * @returns A new ParityRootPrivateInputs instance.
37
38
  */
38
39
  static fromBuffer(buffer: Buffer | BufferReader) {
39
40
  const reader = BufferReader.asReader(buffer);
40
- const tuple = Array.from({ length: NUM_BASE_PARITY_PER_ROOT_PARITY }, () =>
41
- RootParityInput.fromBuffer(reader, RECURSIVE_PROOF_LENGTH),
42
- );
43
- return new RootParityInputs(
44
- tuple as Tuple<RootParityInput<typeof RECURSIVE_PROOF_LENGTH>, typeof NUM_BASE_PARITY_PER_ROOT_PARITY>,
41
+ return new ParityRootPrivateInputs(
42
+ makeTuple(NUM_BASE_PARITY_PER_ROOT_PARITY, () => ProofData.fromBuffer(reader, ParityPublicInputs)),
45
43
  );
46
44
  }
47
45
 
48
46
  /**
49
47
  * Deserializes the inputs from a hex string.
50
48
  * @param str - A hex string to deserialize from.
51
- * @returns A new RootParityInputs instance.
49
+ * @returns A new ParityRootPrivateInputs instance.
52
50
  */
53
51
  static fromString(str: string) {
54
- return RootParityInputs.fromBuffer(hexToBuffer(str));
52
+ return ParityRootPrivateInputs.fromBuffer(hexToBuffer(str));
55
53
  }
56
54
 
57
55
  /** Returns a buffer representation for JSON serialization. */
@@ -61,6 +59,6 @@ export class RootParityInputs {
61
59
 
62
60
  /** Creates an instance from a hex string. */
63
61
  static get schema() {
64
- return bufferSchemaFor(RootParityInputs);
62
+ return bufferSchemaFor(ParityRootPrivateInputs);
65
63
  }
66
64
  }
@@ -1,4 +1,4 @@
1
- import type { CIVC_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
1
+ import type { CIVC_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, RECURSIVE_ROLLUP_HONK_PROOF_LENGTH } from '@aztec/constants';
2
2
  import { BufferReader, type Bufferable, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
 
4
4
  import { RecursiveProof } from '../proofs/recursive_proof.js';
@@ -31,4 +31,6 @@ export class ProofData<T extends Bufferable, PROOF_LENGTH extends number> {
31
31
 
32
32
  export type CivcProofData<T extends Bufferable> = ProofData<T, typeof CIVC_PROOF_LENGTH>;
33
33
 
34
- export type RollupHonkProofData<T extends Bufferable> = ProofData<T, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>;
34
+ export type UltraHonkProofData<T extends Bufferable> = ProofData<T, typeof RECURSIVE_PROOF_LENGTH>;
35
+
36
+ export type RollupHonkProofData<T extends Bufferable> = ProofData<T, typeof RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>;
@@ -1,9 +1,10 @@
1
1
  export enum ProvingRequestType {
2
2
  PUBLIC_VM,
3
3
  PUBLIC_TUBE,
4
- PRIVATE_BASE_ROLLUP,
5
- PUBLIC_BASE_ROLLUP,
6
- MERGE_ROLLUP,
4
+
5
+ PRIVATE_TX_BASE_ROLLUP,
6
+ PUBLIC_TX_BASE_ROLLUP,
7
+ TX_MERGE_ROLLUP,
7
8
  BLOCK_ROOT_FIRST_ROLLUP,
8
9
  BLOCK_ROOT_SINGLE_TX_FIRST_ROLLUP,
9
10
  BLOCK_ROOT_EMPTY_TX_FIRST_ROLLUP,
@@ -16,6 +17,6 @@ export enum ProvingRequestType {
16
17
  CHECKPOINT_MERGE_ROLLUP,
17
18
  ROOT_ROLLUP,
18
19
 
19
- BASE_PARITY,
20
- ROOT_PARITY,
20
+ PARITY_BASE,
21
+ PARITY_ROOT,
21
22
  }
@@ -2,9 +2,8 @@ import { bufferSchemaFor } from '@aztec/foundation/schemas';
2
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
4
4
 
5
- import { ProofData } from '../proofs/index.js';
5
+ import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
6
6
  import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
7
- import type { RollupProofData } from './rollup_proof_data.js';
8
7
 
9
8
  /**
10
9
  * Represents inputs of the block merge rollup circuit.
@@ -14,7 +13,10 @@ export class BlockMergeRollupPrivateInputs {
14
13
  /**
15
14
  * Previous rollup data from the 2 block merge or block root rollup circuits that preceded this merge rollup circuit.
16
15
  */
17
- public previousRollups: [RollupProofData<BlockRollupPublicInputs>, RollupProofData<BlockRollupPublicInputs>],
16
+ public previousRollups: [
17
+ RollupHonkProofData<BlockRollupPublicInputs>,
18
+ RollupHonkProofData<BlockRollupPublicInputs>,
19
+ ],
18
20
  ) {}
19
21
 
20
22
  /**
@@ -6,27 +6,23 @@ import { BufferReader, type Tuple, bigintToUInt64BE, serializeToBuffer } from '@
6
6
  import type { FieldsOf } from '@aztec/foundation/types';
7
7
 
8
8
  import { ParityPublicInputs } from '../parity/parity_public_inputs.js';
9
- import { ProofData } from '../proofs/proof_data.js';
9
+ import { ProofData, type RollupHonkProofData, type UltraHonkProofData } from '../proofs/proof_data.js';
10
10
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
11
11
  import { StateReference } from '../tx/state_reference.js';
12
12
  import type { UInt64 } from '../types/shared.js';
13
- import { BaseOrMergeRollupPublicInputs } from './base_or_merge_rollup_public_inputs.js';
14
13
  import { CheckpointConstantData } from './checkpoint_constant_data.js';
15
- import type { RollupProofData, RootParityProofData } from './rollup_proof_data.js';
14
+ import { TxRollupPublicInputs } from './tx_rollup_public_inputs.js';
16
15
 
17
16
  export class BlockRootFirstRollupPrivateInputs {
18
17
  constructor(
19
18
  /**
20
19
  * The original and converted roots of the L1 to L2 messages subtrees.
21
20
  */
22
- public l1ToL2Roots: RootParityProofData,
21
+ public l1ToL2Roots: UltraHonkProofData<ParityPublicInputs>,
23
22
  /**
24
23
  * The previous rollup proof data from base or merge rollup circuits.
25
24
  */
26
- public previousRollups: [
27
- RollupProofData<BaseOrMergeRollupPublicInputs>,
28
- RollupProofData<BaseOrMergeRollupPublicInputs>,
29
- ],
25
+ public previousRollups: [RollupHonkProofData<TxRollupPublicInputs>, RollupHonkProofData<TxRollupPublicInputs>],
30
26
  /**
31
27
  * The l1 to l2 message tree snapshot immediately before this block.
32
28
  */
@@ -63,10 +59,7 @@ export class BlockRootFirstRollupPrivateInputs {
63
59
  const reader = BufferReader.asReader(buffer);
64
60
  return new BlockRootFirstRollupPrivateInputs(
65
61
  ProofData.fromBuffer(reader, ParityPublicInputs),
66
- [
67
- ProofData.fromBuffer(reader, BaseOrMergeRollupPublicInputs),
68
- ProofData.fromBuffer(reader, BaseOrMergeRollupPublicInputs),
69
- ],
62
+ [ProofData.fromBuffer(reader, TxRollupPublicInputs), ProofData.fromBuffer(reader, TxRollupPublicInputs)],
70
63
  AppendOnlyTreeSnapshot.fromBuffer(reader),
71
64
  reader.readArray(L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, Fr),
72
65
  reader.readArray(ARCHIVE_HEIGHT, Fr),
@@ -87,11 +80,11 @@ export class BlockRootSingleTxFirstRollupPrivateInputs {
87
80
  /**
88
81
  * The original and converted roots of the L1 to L2 messages subtrees.
89
82
  */
90
- public l1ToL2Roots: RootParityProofData,
83
+ public l1ToL2Roots: UltraHonkProofData<ParityPublicInputs>,
91
84
  /**
92
85
  * The previous rollup proof data from base or merge rollup circuits.
93
86
  */
94
- public previousRollup: RollupProofData<BaseOrMergeRollupPublicInputs>,
87
+ public previousRollup: RollupHonkProofData<TxRollupPublicInputs>,
95
88
  /**
96
89
  * The l1 to l2 message tree snapshot immediately before this block.
97
90
  */
@@ -130,7 +123,7 @@ export class BlockRootSingleTxFirstRollupPrivateInputs {
130
123
  const reader = BufferReader.asReader(buffer);
131
124
  return new BlockRootSingleTxFirstRollupPrivateInputs(
132
125
  ProofData.fromBuffer(reader, ParityPublicInputs),
133
- ProofData.fromBuffer(reader, BaseOrMergeRollupPublicInputs),
126
+ ProofData.fromBuffer(reader, TxRollupPublicInputs),
134
127
  AppendOnlyTreeSnapshot.fromBuffer(reader),
135
128
  reader.readArray(L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, Fr),
136
129
  reader.readArray(ARCHIVE_HEIGHT, Fr),
@@ -151,7 +144,7 @@ export class BlockRootEmptyTxFirstRollupPrivateInputs {
151
144
  /**
152
145
  * The original and converted roots of the L1 to L2 messages subtrees.
153
146
  */
154
- public l1ToL2Roots: RootParityProofData,
147
+ public l1ToL2Roots: UltraHonkProofData<ParityPublicInputs>,
155
148
  /**
156
149
  * The archive after applying the previous block.
157
150
  */
@@ -241,10 +234,7 @@ export class BlockRootRollupPrivateInputs {
241
234
  /**
242
235
  * The previous rollup proof data from base or merge rollup circuits.
243
236
  */
244
- public previousRollups: [
245
- RollupProofData<BaseOrMergeRollupPublicInputs>,
246
- RollupProofData<BaseOrMergeRollupPublicInputs>,
247
- ],
237
+ public previousRollups: [RollupHonkProofData<TxRollupPublicInputs>, RollupHonkProofData<TxRollupPublicInputs>],
248
238
  /**
249
239
  * Hint for inserting the new block hash to the last archive.
250
240
  */
@@ -266,10 +256,7 @@ export class BlockRootRollupPrivateInputs {
266
256
  static fromBuffer(buffer: Buffer | BufferReader) {
267
257
  const reader = BufferReader.asReader(buffer);
268
258
  return new BlockRootRollupPrivateInputs(
269
- [
270
- ProofData.fromBuffer(reader, BaseOrMergeRollupPublicInputs),
271
- ProofData.fromBuffer(reader, BaseOrMergeRollupPublicInputs),
272
- ],
259
+ [ProofData.fromBuffer(reader, TxRollupPublicInputs), ProofData.fromBuffer(reader, TxRollupPublicInputs)],
273
260
  reader.readArray(ARCHIVE_HEIGHT, Fr),
274
261
  );
275
262
  }
@@ -288,7 +275,7 @@ export class BlockRootSingleTxRollupPrivateInputs {
288
275
  /**
289
276
  * The previous rollup proof data from base or merge rollup circuits.
290
277
  */
291
- public previousRollup: RollupProofData<BaseOrMergeRollupPublicInputs>,
278
+ public previousRollup: RollupHonkProofData<TxRollupPublicInputs>,
292
279
  /**
293
280
  * Hint for inserting the new block hash to the last archive.
294
281
  */
@@ -310,7 +297,7 @@ export class BlockRootSingleTxRollupPrivateInputs {
310
297
  static fromBuffer(buffer: Buffer | BufferReader) {
311
298
  const reader = BufferReader.asReader(buffer);
312
299
  return new BlockRootSingleTxRollupPrivateInputs(
313
- ProofData.fromBuffer(reader, BaseOrMergeRollupPublicInputs),
300
+ ProofData.fromBuffer(reader, TxRollupPublicInputs),
314
301
  reader.readArray(ARCHIVE_HEIGHT, Fr),
315
302
  );
316
303
  }
@@ -2,9 +2,8 @@ import { bufferSchemaFor } from '@aztec/foundation/schemas';
2
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
4
4
 
5
- import { ProofData } from '../proofs/proof_data.js';
5
+ import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
6
6
  import { CheckpointRollupPublicInputs } from './checkpoint_rollup_public_inputs.js';
7
- import type { RollupProofData } from './rollup_proof_data.js';
8
7
 
9
8
  /**
10
9
  * Represents inputs of the checkpoint merge rollup circuit.
@@ -15,8 +14,8 @@ export class CheckpointMergeRollupPrivateInputs {
15
14
  * Previous rollup data from the 2 checkpoint root or merge rollup circuits that preceded this checkpoint merge rollup circuit.
16
15
  */
17
16
  public previousRollups: [
18
- RollupProofData<CheckpointRollupPublicInputs>,
19
- RollupProofData<CheckpointRollupPublicInputs>,
17
+ RollupHonkProofData<CheckpointRollupPublicInputs>,
18
+ RollupHonkProofData<CheckpointRollupPublicInputs>,
20
19
  ],
21
20
  ) {}
22
21
 
@@ -6,10 +6,9 @@ import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/s
6
6
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
7
7
  import type { FieldsOf } from '@aztec/foundation/types';
8
8
 
9
- import { ProofData } from '../proofs/proof_data.js';
9
+ import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
10
10
  import { BlockHeader } from '../tx/block_header.js';
11
11
  import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
12
- import type { RollupProofData } from './rollup_proof_data.js';
13
12
 
14
13
  export class CheckpointRootRollupHints {
15
14
  constructor(
@@ -100,7 +99,10 @@ export class CheckpointRootRollupHints {
100
99
 
101
100
  export class CheckpointRootRollupPrivateInputs {
102
101
  constructor(
103
- public previousRollups: [RollupProofData<BlockRollupPublicInputs>, RollupProofData<BlockRollupPublicInputs>],
102
+ public previousRollups: [
103
+ RollupHonkProofData<BlockRollupPublicInputs>,
104
+ RollupHonkProofData<BlockRollupPublicInputs>,
105
+ ],
104
106
  public hints: CheckpointRootRollupHints,
105
107
  ) {}
106
108
 
@@ -143,7 +145,7 @@ export class CheckpointRootRollupPrivateInputs {
143
145
 
144
146
  export class CheckpointRootSingleBlockRollupPrivateInputs {
145
147
  constructor(
146
- public previousRollup: RollupProofData<BlockRollupPublicInputs>,
148
+ public previousRollup: RollupHonkProofData<BlockRollupPublicInputs>,
147
149
  public hints: CheckpointRootRollupHints,
148
150
  ) {}
149
151
 
@@ -1,21 +1,20 @@
1
1
  export * from './avm_proof_data.js';
2
- export * from './base_or_merge_rollup_public_inputs.js';
3
2
  export * from './base_rollup_hints.js';
4
3
  export * from './block_constant_data.js';
5
- export * from './block_merge_rollup.js';
4
+ export * from './block_merge_rollup_private_inputs.js';
6
5
  export * from './block_rollup_public_inputs.js';
7
- export * from './block_root_rollup.js';
6
+ export * from './block_root_rollup_private_inputs.js';
8
7
  export * from './checkpoint_constant_data.js';
9
8
  export * from './checkpoint_header.js';
10
- export * from './checkpoint_merge_rollup.js';
9
+ export * from './checkpoint_merge_rollup_private_inputs.js';
11
10
  export * from './checkpoint_rollup_public_inputs.js';
12
- export * from './checkpoint_root_rollup.js';
11
+ export * from './checkpoint_root_rollup_private_inputs.js';
13
12
  export * from './epoch_constant_data.js';
14
- export * from './merge_rollup.js';
15
- export * from './previous_rollup_data.js';
16
- export * from './private_base_rollup_inputs.js';
17
- export * from './public_base_rollup_inputs.js';
18
- export * from './rollup_proof_data.js';
13
+ export * from './private_tx_base_rollup_private_inputs.js';
14
+ export * from './public_tx_base_rollup_private_inputs.js';
19
15
  export * from './public_tube_private_inputs.js';
20
- export * from './root_rollup.js';
16
+ export * from './root_rollup_private_inputs.js';
17
+ export * from './root_rollup_public_inputs.js';
21
18
  export * from './state_diff_hints.js';
19
+ export * from './tx_merge_rollup_private_inputs.js';
20
+ export * from './tx_rollup_public_inputs.js';