@aztec/stdlib 3.0.0-nightly.20250924 → 3.0.0-nightly.20250926

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 (68) hide show
  1. package/dest/avm/avm_accumulated_data.d.ts +1 -0
  2. package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
  3. package/dest/avm/avm_accumulated_data.js +4 -0
  4. package/dest/avm/index.d.ts +0 -1
  5. package/dest/avm/index.d.ts.map +1 -1
  6. package/dest/avm/index.js +0 -1
  7. package/dest/file-store/factory.d.ts.map +1 -1
  8. package/dest/file-store/factory.js +18 -0
  9. package/dest/file-store/s3.d.ts +25 -0
  10. package/dest/file-store/s3.d.ts.map +1 -0
  11. package/dest/file-store/s3.js +187 -0
  12. package/dest/interfaces/aztec-node-admin.d.ts +6 -0
  13. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  14. package/dest/interfaces/pxe.d.ts +5 -179
  15. package/dest/interfaces/pxe.d.ts.map +1 -1
  16. package/dest/interfaces/pxe.js +2 -59
  17. package/dest/interfaces/slasher.d.ts +4 -0
  18. package/dest/interfaces/slasher.d.ts.map +1 -1
  19. package/dest/interfaces/slasher.js +1 -0
  20. package/dest/interfaces/validator.d.ts +6 -1
  21. package/dest/interfaces/validator.d.ts.map +1 -1
  22. package/dest/interfaces/validator.js +2 -1
  23. package/dest/rollup/avm_proof_data.d.ts +2 -12
  24. package/dest/rollup/avm_proof_data.d.ts.map +1 -1
  25. package/dest/rollup/avm_proof_data.js +0 -24
  26. package/dest/rollup/base_rollup_hints.d.ts +15 -16
  27. package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
  28. package/dest/rollup/base_rollup_hints.js +24 -25
  29. package/dest/rollup/block_root_rollup_private_inputs.d.ts +13 -13
  30. package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
  31. package/dest/rollup/block_root_rollup_private_inputs.js +20 -20
  32. package/dest/rollup/index.d.ts +1 -1
  33. package/dest/rollup/index.d.ts.map +1 -1
  34. package/dest/rollup/index.js +1 -1
  35. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +1 -1
  36. package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
  37. package/dest/rollup/public_tx_base_rollup_private_inputs.js +2 -2
  38. package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
  39. package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
  40. package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
  41. package/dest/rollup/tx_rollup_public_inputs.d.ts +4 -4
  42. package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
  43. package/dest/rollup/tx_rollup_public_inputs.js +7 -7
  44. package/dest/tests/factories.d.ts +4 -4
  45. package/dest/tests/factories.d.ts.map +1 -1
  46. package/dest/tests/factories.js +20 -25
  47. package/package.json +9 -8
  48. package/src/avm/avm_accumulated_data.ts +10 -0
  49. package/src/avm/index.ts +0 -1
  50. package/src/file-store/factory.ts +15 -0
  51. package/src/file-store/s3.ts +186 -0
  52. package/src/interfaces/pxe.ts +8 -80
  53. package/src/interfaces/slasher.ts +2 -0
  54. package/src/interfaces/validator.ts +5 -1
  55. package/src/rollup/avm_proof_data.ts +2 -31
  56. package/src/rollup/base_rollup_hints.ts +20 -21
  57. package/src/rollup/block_root_rollup_private_inputs.ts +14 -14
  58. package/src/rollup/index.ts +1 -1
  59. package/src/rollup/public_tx_base_rollup_private_inputs.ts +3 -2
  60. package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
  61. package/src/rollup/tx_rollup_public_inputs.ts +4 -4
  62. package/src/tests/factories.ts +25 -37
  63. package/dest/avm/public_data_hint.d.ts +0 -16
  64. package/dest/avm/public_data_hint.d.ts.map +0 -1
  65. package/dest/avm/public_data_hint.js +0 -27
  66. package/dest/rollup/state_diff_hints.d.ts.map +0 -1
  67. package/dest/rollup/state_diff_hints.js +0 -85
  68. package/src/avm/public_data_hint.ts +0 -38
@@ -4,15 +4,14 @@ import { makeTuple } from '@aztec/foundation/array';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
5
  import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
6
6
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
7
- import { MembershipWitness } from '@aztec/foundation/trees';
8
7
  import type { FieldsOf } from '@aztec/foundation/types';
9
8
 
10
- import { PublicDataHint } from '../avm/public_data_hint.js';
11
9
  import { ContractClassLogFields } from '../logs/index.js';
12
- import { AppendOnlyTreeSnapshot } from '../trees/index.js';
10
+ import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
11
+ import { PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
13
12
  import { PartialStateReference } from '../tx/partial_state_reference.js';
14
13
  import { BlockConstantData } from './block_constant_data.js';
15
- import { PrivateBaseStateDiffHints } from './state_diff_hints.js';
14
+ import { TreeSnapshotDiffHints } from './tree_snapshot_diff_hints.js';
16
15
 
17
16
  export type BaseRollupHints = PrivateBaseRollupHints | PublicBaseRollupHints;
18
17
 
@@ -29,15 +28,15 @@ export class PrivateBaseRollupHints {
29
28
  /**
30
29
  * Hints used while proving state diff validity.
31
30
  */
32
- public stateDiffHints: PrivateBaseStateDiffHints,
31
+ public treeSnapshotDiffHints: TreeSnapshotDiffHints,
33
32
  /**
34
- * Public data read hint for accessing the balance of the fee payer.
33
+ * Public data tree leaf preimage for accessing the balance of the fee payer.
35
34
  */
36
- public feePayerFeeJuiceBalanceReadHint: PublicDataHint,
35
+ public feePayerBalanceLeafPreimage: PublicDataTreeLeafPreimage,
37
36
  /**
38
37
  * Membership witnesses of blocks referred by each of the 2 kernels.
39
38
  */
40
- public archiveRootMembershipWitness: MembershipWitness<typeof ARCHIVE_HEIGHT>,
39
+ public anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
41
40
  /**
42
41
  * Preimages to the kernel's contractClassLogsHashes.
43
42
  */
@@ -56,9 +55,9 @@ export class PrivateBaseRollupHints {
56
55
  return [
57
56
  fields.start,
58
57
  fields.startSpongeBlob,
59
- fields.stateDiffHints,
60
- fields.feePayerFeeJuiceBalanceReadHint,
61
- fields.archiveRootMembershipWitness,
58
+ fields.treeSnapshotDiffHints,
59
+ fields.feePayerBalanceLeafPreimage,
60
+ fields.anchorBlockArchiveSiblingPath,
62
61
  fields.contractClassLogsFields,
63
62
  fields.constants,
64
63
  ] as const;
@@ -85,9 +84,9 @@ export class PrivateBaseRollupHints {
85
84
  return new PrivateBaseRollupHints(
86
85
  reader.readObject(PartialStateReference),
87
86
  reader.readObject(SpongeBlob),
88
- reader.readObject(PrivateBaseStateDiffHints),
89
- reader.readObject(PublicDataHint),
90
- MembershipWitness.fromBuffer(reader, ARCHIVE_HEIGHT),
87
+ reader.readObject(TreeSnapshotDiffHints),
88
+ reader.readObject(PublicDataTreeLeafPreimage),
89
+ reader.readArray(ARCHIVE_HEIGHT, Fr),
91
90
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
92
91
  reader.readObject(BlockConstantData),
93
92
  );
@@ -101,9 +100,9 @@ export class PrivateBaseRollupHints {
101
100
  return new PrivateBaseRollupHints(
102
101
  PartialStateReference.empty(),
103
102
  SpongeBlob.empty(),
104
- PrivateBaseStateDiffHints.empty(),
105
- PublicDataHint.empty(),
106
- MembershipWitness.empty(ARCHIVE_HEIGHT),
103
+ TreeSnapshotDiffHints.empty(),
104
+ PublicDataTreeLeafPreimage.empty(),
105
+ makeTuple(ARCHIVE_HEIGHT, Fr.zero),
107
106
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLogFields.empty),
108
107
  BlockConstantData.empty(),
109
108
  );
@@ -123,7 +122,7 @@ export class PublicBaseRollupHints {
123
122
  /**
124
123
  * Membership witnesses of blocks referred by each of the 2 kernels.
125
124
  */
126
- public archiveRootMembershipWitness: MembershipWitness<typeof ARCHIVE_HEIGHT>,
125
+ public anchorBlockArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
127
126
  /**
128
127
  * Preimages to the kernel's contractClassLogsHashes.
129
128
  */
@@ -142,7 +141,7 @@ export class PublicBaseRollupHints {
142
141
  return [
143
142
  fields.startSpongeBlob,
144
143
  fields.lastArchive,
145
- fields.archiveRootMembershipWitness,
144
+ fields.anchorBlockArchiveSiblingPath,
146
145
  fields.contractClassLogsFields,
147
146
  fields.proverId,
148
147
  ] as const;
@@ -169,7 +168,7 @@ export class PublicBaseRollupHints {
169
168
  return new PublicBaseRollupHints(
170
169
  reader.readObject(SpongeBlob),
171
170
  reader.readObject(AppendOnlyTreeSnapshot),
172
- MembershipWitness.fromBuffer(reader, ARCHIVE_HEIGHT),
171
+ reader.readArray(ARCHIVE_HEIGHT, Fr),
173
172
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
174
173
  reader.readObject(Fr),
175
174
  );
@@ -183,7 +182,7 @@ export class PublicBaseRollupHints {
183
182
  return new PublicBaseRollupHints(
184
183
  SpongeBlob.empty(),
185
184
  AppendOnlyTreeSnapshot.empty(),
186
- MembershipWitness.empty(ARCHIVE_HEIGHT),
185
+ makeTuple(ARCHIVE_HEIGHT, Fr.zero),
187
186
  makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLogFields.empty),
188
187
  Fr.ZERO,
189
188
  );
@@ -1,5 +1,5 @@
1
1
  import { SpongeBlob } from '@aztec/blob-lib/types';
2
- import { ARCHIVE_HEIGHT, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH } from '@aztec/constants';
2
+ import { ARCHIVE_HEIGHT, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH } from '@aztec/constants';
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { bufferSchemaFor } from '@aztec/foundation/schemas';
5
5
  import { BufferReader, type Tuple, bigintToUInt64BE, serializeToBuffer } from '@aztec/foundation/serialize';
@@ -28,9 +28,9 @@ export class BlockRootFirstRollupPrivateInputs {
28
28
  */
29
29
  public previousL1ToL2: AppendOnlyTreeSnapshot,
30
30
  /**
31
- * Hint for inserting the new l1 to l2 message subtree into `previousL1ToL2`.
31
+ * Hint for inserting the new l1 to l2 message subtree root into `previousL1ToL2`.
32
32
  */
33
- public newL1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>,
33
+ public newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>,
34
34
  /**
35
35
  * Hint for inserting the new block hash to the last archive.
36
36
  */
@@ -46,7 +46,7 @@ export class BlockRootFirstRollupPrivateInputs {
46
46
  fields.l1ToL2Roots,
47
47
  fields.previousRollups,
48
48
  fields.previousL1ToL2,
49
- fields.newL1ToL2MessageSubtreeSiblingPath,
49
+ fields.newL1ToL2MessageSubtreeRootSiblingPath,
50
50
  fields.newArchiveSiblingPath,
51
51
  ] as const;
52
52
  }
@@ -61,7 +61,7 @@ export class BlockRootFirstRollupPrivateInputs {
61
61
  ProofData.fromBuffer(reader, ParityPublicInputs),
62
62
  [ProofData.fromBuffer(reader, TxRollupPublicInputs), ProofData.fromBuffer(reader, TxRollupPublicInputs)],
63
63
  AppendOnlyTreeSnapshot.fromBuffer(reader),
64
- reader.readArray(L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, Fr),
64
+ reader.readArray(L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
65
65
  reader.readArray(ARCHIVE_HEIGHT, Fr),
66
66
  );
67
67
  }
@@ -90,9 +90,9 @@ export class BlockRootSingleTxFirstRollupPrivateInputs {
90
90
  */
91
91
  public previousL1ToL2: AppendOnlyTreeSnapshot,
92
92
  /**
93
- * Hint for inserting the new l1 to l2 message subtree.
93
+ * Hint for inserting the new l1 to l2 message subtree root.
94
94
  */
95
- public newL1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>,
95
+ public newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>,
96
96
  /**
97
97
  * Hint for inserting the new block hash to the last archive.
98
98
  */
@@ -110,7 +110,7 @@ export class BlockRootSingleTxFirstRollupPrivateInputs {
110
110
  fields.l1ToL2Roots,
111
111
  fields.previousRollup,
112
112
  fields.previousL1ToL2,
113
- fields.newL1ToL2MessageSubtreeSiblingPath,
113
+ fields.newL1ToL2MessageSubtreeRootSiblingPath,
114
114
  fields.newArchiveSiblingPath,
115
115
  ] as const;
116
116
  }
@@ -125,7 +125,7 @@ export class BlockRootSingleTxFirstRollupPrivateInputs {
125
125
  ProofData.fromBuffer(reader, ParityPublicInputs),
126
126
  ProofData.fromBuffer(reader, TxRollupPublicInputs),
127
127
  AppendOnlyTreeSnapshot.fromBuffer(reader),
128
- reader.readArray(L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, Fr),
128
+ reader.readArray(L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
129
129
  reader.readArray(ARCHIVE_HEIGHT, Fr),
130
130
  );
131
131
  }
@@ -167,9 +167,9 @@ export class BlockRootEmptyTxFirstRollupPrivateInputs {
167
167
  */
168
168
  public timestamp: UInt64,
169
169
  /**
170
- * Hint for inserting the new l1 to l2 message subtree.
170
+ * Hint for inserting the new l1 to l2 message subtree root.
171
171
  */
172
- public newL1ToL2MessageSubtreeSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>,
172
+ public newL1ToL2MessageSubtreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH>,
173
173
  /**
174
174
  * Hint for inserting the new block hash to the last archive.
175
175
  */
@@ -188,7 +188,7 @@ export class BlockRootEmptyTxFirstRollupPrivateInputs {
188
188
  fields.constants,
189
189
  fields.startSpongeBlob,
190
190
  fields.timestamp,
191
- fields.newL1ToL2MessageSubtreeSiblingPath,
191
+ fields.newL1ToL2MessageSubtreeRootSiblingPath,
192
192
  fields.newArchiveSiblingPath,
193
193
  ] as const;
194
194
  }
@@ -201,7 +201,7 @@ export class BlockRootEmptyTxFirstRollupPrivateInputs {
201
201
  this.constants,
202
202
  this.startSpongeBlob,
203
203
  bigintToUInt64BE(this.timestamp),
204
- this.newL1ToL2MessageSubtreeSiblingPath,
204
+ this.newL1ToL2MessageSubtreeRootSiblingPath,
205
205
  this.newArchiveSiblingPath,
206
206
  ]);
207
207
  }
@@ -215,7 +215,7 @@ export class BlockRootEmptyTxFirstRollupPrivateInputs {
215
215
  CheckpointConstantData.fromBuffer(reader),
216
216
  SpongeBlob.fromBuffer(reader),
217
217
  reader.readUInt64(),
218
- reader.readArray(L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH, Fr),
218
+ reader.readArray(L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
219
219
  reader.readArray(ARCHIVE_HEIGHT, Fr),
220
220
  );
221
221
  }
@@ -15,6 +15,6 @@ export * from './public_tx_base_rollup_private_inputs.js';
15
15
  export * from './public_tube_private_inputs.js';
16
16
  export * from './root_rollup_private_inputs.js';
17
17
  export * from './root_rollup_public_inputs.js';
18
- export * from './state_diff_hints.js';
18
+ export * from './tree_snapshot_diff_hints.js';
19
19
  export * from './tx_merge_rollup_private_inputs.js';
20
20
  export * from './tx_rollup_public_inputs.js';
@@ -3,9 +3,10 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
4
4
  import type { FieldsOf } from '@aztec/foundation/types';
5
5
 
6
+ import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
6
7
  import { PrivateToPublicKernelCircuitPublicInputs } from '../kernel/private_to_public_kernel_circuit_public_inputs.js';
7
8
  import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
8
- import { AvmProofData } from './avm_proof_data.js';
9
+ import type { AvmProofData } from './avm_proof_data.js';
9
10
  import { PublicBaseRollupHints } from './base_rollup_hints.js';
10
11
 
11
12
  export class PublicTxBaseRollupPrivateInputs {
@@ -27,7 +28,7 @@ export class PublicTxBaseRollupPrivateInputs {
27
28
  const reader = BufferReader.asReader(buffer);
28
29
  return new PublicTxBaseRollupPrivateInputs(
29
30
  ProofData.fromBuffer(reader, PrivateToPublicKernelCircuitPublicInputs),
30
- reader.readObject(AvmProofData),
31
+ ProofData.fromBuffer(reader, AvmCircuitPublicInputs),
31
32
  reader.readObject(PublicBaseRollupHints),
32
33
  );
33
34
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MAX_NULLIFIERS_PER_TX,
3
- NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH,
4
- NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH,
3
+ NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
4
+ NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
5
5
  NULLIFIER_TREE_HEIGHT,
6
6
  PUBLIC_DATA_TREE_HEIGHT,
7
7
  } from '@aztec/constants';
@@ -11,13 +11,17 @@ import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/s
11
11
  import { MembershipWitness } from '@aztec/foundation/trees';
12
12
  import type { FieldsOf } from '@aztec/foundation/types';
13
13
 
14
- import { NullifierLeafPreimage, PublicDataTreeLeafPreimage } from '../trees/index.js';
14
+ import { NullifierLeafPreimage } from '../trees/index.js';
15
15
 
16
16
  /**
17
17
  * Hints used while proving state diff validity for the private base rollup.
18
18
  */
19
- export class PrivateBaseStateDiffHints {
19
+ export class TreeSnapshotDiffHints {
20
20
  constructor(
21
+ /**
22
+ * Sibling path "pointing to" where the new note hash subtree should be inserted into the note hash tree.
23
+ */
24
+ public noteHashSubtreeRootSiblingPath: Tuple<Fr, typeof NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH>,
21
25
  /**
22
26
  * The nullifiers which need to be updated to perform the batch insertion of the new nullifiers.
23
27
  * See `StandardIndexedTree.batchInsert` function for more details.
@@ -39,44 +43,29 @@ export class PrivateBaseStateDiffHints {
39
43
  * The indexes of the sorted nullifiers to the original ones.
40
44
  */
41
45
  public sortedNullifierIndexes: Tuple<number, typeof MAX_NULLIFIERS_PER_TX>,
42
- /**
43
- * Sibling path "pointing to" where the new note hash subtree should be inserted into the note hash tree.
44
- */
45
- public noteHashSubtreeSiblingPath: Tuple<Fr, typeof NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH>,
46
46
  /**
47
47
  * Sibling path "pointing to" where the new nullifiers subtree should be inserted into the nullifier tree.
48
48
  */
49
- public nullifierSubtreeSiblingPath: Tuple<Fr, typeof NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH>,
50
-
51
- /**
52
- * Low leaf for the fee write in the public data tree.
53
- */
54
- public feeWriteLowLeafPreimage: PublicDataTreeLeafPreimage,
55
- /**
56
- * Membership witness for the low leaf for the fee write in the public data tree.
57
- */
58
- public feeWriteLowLeafMembershipWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>,
49
+ public nullifierSubtreeRootSiblingPath: Tuple<Fr, typeof NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH>,
59
50
  /**
60
- * Sibling path "pointing to" where the fee write should be inserted into the public data tree.
51
+ * Membership witness for the fee payer's balance leaf in the public data tree.
61
52
  */
62
- public feeWriteSiblingPath: Tuple<Fr, typeof PUBLIC_DATA_TREE_HEIGHT>,
53
+ public feePayerBalanceMembershipWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>,
63
54
  ) {}
64
55
 
65
- static from(fields: FieldsOf<PrivateBaseStateDiffHints>): PrivateBaseStateDiffHints {
66
- return new PrivateBaseStateDiffHints(...PrivateBaseStateDiffHints.getFields(fields));
56
+ static from(fields: FieldsOf<TreeSnapshotDiffHints>): TreeSnapshotDiffHints {
57
+ return new TreeSnapshotDiffHints(...TreeSnapshotDiffHints.getFields(fields));
67
58
  }
68
59
 
69
- static getFields(fields: FieldsOf<PrivateBaseStateDiffHints>) {
60
+ static getFields(fields: FieldsOf<TreeSnapshotDiffHints>) {
70
61
  return [
62
+ fields.noteHashSubtreeRootSiblingPath,
71
63
  fields.nullifierPredecessorPreimages,
72
64
  fields.nullifierPredecessorMembershipWitnesses,
73
65
  fields.sortedNullifiers,
74
66
  fields.sortedNullifierIndexes,
75
- fields.noteHashSubtreeSiblingPath,
76
- fields.nullifierSubtreeSiblingPath,
77
- fields.feeWriteLowLeafPreimage,
78
- fields.feeWriteLowLeafMembershipWitness,
79
- fields.feeWriteSiblingPath,
67
+ fields.nullifierSubtreeRootSiblingPath,
68
+ fields.feePayerBalanceMembershipWitness,
80
69
  ] as const;
81
70
  }
82
71
 
@@ -85,42 +74,38 @@ export class PrivateBaseStateDiffHints {
85
74
  * @returns A buffer of the serialized state diff hints.
86
75
  */
87
76
  toBuffer(): Buffer {
88
- return serializeToBuffer(...PrivateBaseStateDiffHints.getFields(this));
77
+ return serializeToBuffer(...TreeSnapshotDiffHints.getFields(this));
89
78
  }
90
79
 
91
80
  /**
92
81
  * Deserializes the state diff hints from a buffer.
93
82
  * @param buffer - A buffer to deserialize from.
94
- * @returns A new PrivateBaseStateDiffHints instance.
83
+ * @returns A new TreeSnapshotDiffHints instance.
95
84
  */
96
- static fromBuffer(buffer: Buffer | BufferReader): PrivateBaseStateDiffHints {
85
+ static fromBuffer(buffer: Buffer | BufferReader): TreeSnapshotDiffHints {
97
86
  const reader = BufferReader.asReader(buffer);
98
- return new PrivateBaseStateDiffHints(
87
+ return new TreeSnapshotDiffHints(
88
+ reader.readArray(NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
99
89
  reader.readArray(MAX_NULLIFIERS_PER_TX, NullifierLeafPreimage),
100
90
  reader.readArray(MAX_NULLIFIERS_PER_TX, {
101
91
  fromBuffer: buffer => MembershipWitness.fromBuffer(buffer, NULLIFIER_TREE_HEIGHT),
102
92
  }),
103
93
  reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
104
94
  reader.readNumbers(MAX_NULLIFIERS_PER_TX),
105
- reader.readArray(NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, Fr),
106
- reader.readArray(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, Fr),
107
- reader.readObject(PublicDataTreeLeafPreimage),
95
+ reader.readArray(NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
108
96
  MembershipWitness.fromBuffer(reader, PUBLIC_DATA_TREE_HEIGHT),
109
- reader.readArray(PUBLIC_DATA_TREE_HEIGHT, Fr),
110
97
  );
111
98
  }
112
99
 
113
100
  static empty() {
114
- return new PrivateBaseStateDiffHints(
101
+ return new TreeSnapshotDiffHints(
102
+ makeTuple(NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr.zero),
115
103
  makeTuple(MAX_NULLIFIERS_PER_TX, NullifierLeafPreimage.empty),
116
104
  makeTuple(MAX_NULLIFIERS_PER_TX, () => MembershipWitness.empty(NULLIFIER_TREE_HEIGHT)),
117
105
  makeTuple(MAX_NULLIFIERS_PER_TX, Fr.zero),
118
106
  makeTuple(MAX_NULLIFIERS_PER_TX, () => 0),
119
- makeTuple(NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, Fr.zero),
120
- makeTuple(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, Fr.zero),
121
- PublicDataTreeLeafPreimage.empty(),
107
+ makeTuple(NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr.zero),
122
108
  MembershipWitness.empty(PUBLIC_DATA_TREE_HEIGHT),
123
- makeTuple(PUBLIC_DATA_TREE_HEIGHT, Fr.zero),
124
109
  );
125
110
  }
126
111
  }
@@ -23,11 +23,11 @@ export class TxRollupPublicInputs {
23
23
  /**
24
24
  * Partial state reference at the start of the rollup circuit.
25
25
  */
26
- public startPartialState: PartialStateReference,
26
+ public startTreeSnapshots: PartialStateReference,
27
27
  /**
28
28
  * Partial state reference at the end of the rollup circuit.
29
29
  */
30
- public endPartialState: PartialStateReference,
30
+ public endTreeSnapshots: PartialStateReference,
31
31
  /**
32
32
  * Sponge state to absorb blob inputs at the start of the rollup circuit.
33
33
  */
@@ -96,8 +96,8 @@ export class TxRollupPublicInputs {
96
96
  this.numTxs,
97
97
  this.constants,
98
98
 
99
- this.startPartialState,
100
- this.endPartialState,
99
+ this.startTreeSnapshots,
100
+ this.endTreeSnapshots,
101
101
 
102
102
  this.startSpongeBlob,
103
103
  this.endSpongeBlob,
@@ -9,7 +9,7 @@ import {
9
9
  FIXED_DA_GAS,
10
10
  FIXED_L2_GAS,
11
11
  GeneratorIndex,
12
- L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH,
12
+ L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
13
13
  MAX_CONTRACT_CLASS_LOGS_PER_TX,
14
14
  MAX_ENQUEUED_CALLS_PER_CALL,
15
15
  MAX_ENQUEUED_CALLS_PER_TX,
@@ -29,8 +29,8 @@ import {
29
29
  MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
30
30
  MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
31
31
  NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
32
- NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH,
33
- NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH,
32
+ NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
33
+ NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
34
34
  NULLIFIER_TREE_HEIGHT,
35
35
  NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
36
36
  NUM_BASE_PARITY_PER_ROOT_PARITY,
@@ -75,7 +75,6 @@ import {
75
75
  AvmTxHint,
76
76
  RevertCode,
77
77
  } from '../avm/index.js';
78
- import { PublicDataHint } from '../avm/public_data_hint.js';
79
78
  import { PublicDataRead } from '../avm/public_data_read.js';
80
79
  import { PublicDataWrite } from '../avm/public_data_write.js';
81
80
  import { AztecAddress } from '../aztec-address/index.js';
@@ -131,7 +130,6 @@ import { ProofData } from '../proofs/index.js';
131
130
  import { Proof } from '../proofs/proof.js';
132
131
  import { ProvingRequestType } from '../proofs/proving_request_type.js';
133
132
  import { makeRecursiveProof } from '../proofs/recursive_proof.js';
134
- import { AvmProofData } from '../rollup/avm_proof_data.js';
135
133
  import { PrivateBaseRollupHints, PublicBaseRollupHints } from '../rollup/base_rollup_hints.js';
136
134
  import { BlockConstantData } from '../rollup/block_constant_data.js';
137
135
  import { BlockMergeRollupPrivateInputs } from '../rollup/block_merge_rollup_private_inputs.js';
@@ -147,7 +145,7 @@ import { EpochConstantData } from '../rollup/epoch_constant_data.js';
147
145
  import { PrivateTxBaseRollupPrivateInputs } from '../rollup/private_tx_base_rollup_private_inputs.js';
148
146
  import { PublicTxBaseRollupPrivateInputs } from '../rollup/public_tx_base_rollup_private_inputs.js';
149
147
  import { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
150
- import { PrivateBaseStateDiffHints } from '../rollup/state_diff_hints.js';
148
+ import { TreeSnapshotDiffHints } from '../rollup/tree_snapshot_diff_hints.js';
151
149
  import { TxMergeRollupPrivateInputs } from '../rollup/tx_merge_rollup_private_inputs.js';
152
150
  import { TxRollupPublicInputs } from '../rollup/tx_rollup_public_inputs.js';
153
151
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
@@ -919,7 +917,7 @@ export function makeBlockRootFirstRollupPrivateInputs(seed = 0) {
919
917
  makeProofData(seed, makeParityPublicInputs),
920
918
  [makeProofData(seed + 0x1000, makeTxRollupPublicInputs), makeProofData(seed + 0x2000, makeTxRollupPublicInputs)],
921
919
  makeAppendOnlyTreeSnapshot(seed + 0x3000),
922
- makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH),
920
+ makeSiblingPath(seed + 0x4000, L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH),
923
921
  makeSiblingPath(seed + 0x5000, ARCHIVE_HEIGHT),
924
922
  );
925
923
  }
@@ -980,11 +978,11 @@ export function makePublicDataTreeLeafPreimage(seed = 0): PublicDataTreeLeafPrei
980
978
  }
981
979
 
982
980
  /**
983
- * Creates an instance of PrivateBaseStateDiffHints with arbitrary values based on the provided seed.
981
+ * Creates an instance of TreeSnapshotDiffHints with arbitrary values based on the provided seed.
984
982
  * @param seed - The seed to use for generating the hints.
985
- * @returns A PrivateBaseStateDiffHints object.
983
+ * @returns A TreeSnapshotDiffHints object.
986
984
  */
987
- export function makePrivateBaseStateDiffHints(seed = 1): PrivateBaseStateDiffHints {
985
+ export function makeTreeSnapshotDiffHints(seed = 1): TreeSnapshotDiffHints {
988
986
  const nullifierPredecessorPreimages = makeTuple(
989
987
  MAX_NULLIFIERS_PER_TX,
990
988
  x => makeNullifierLeafPreimage(x),
@@ -1001,24 +999,20 @@ export function makePrivateBaseStateDiffHints(seed = 1): PrivateBaseStateDiffHin
1001
999
 
1002
1000
  const sortedNullifierIndexes = makeTuple(MAX_NULLIFIERS_PER_TX, i => i, seed + 0x4000);
1003
1001
 
1004
- const noteHashSubtreeSiblingPath = makeTuple(NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, fr, seed + 0x5000);
1002
+ const noteHashSubtreeRootSiblingPath = makeTuple(NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, fr, seed + 0x5000);
1005
1003
 
1006
- const nullifierSubtreeSiblingPath = makeTuple(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, fr, seed + 0x6000);
1004
+ const nullifierSubtreeRootSiblingPath = makeTuple(NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, fr, seed + 0x6000);
1007
1005
 
1008
- const feeWriteLowLeafPreimage = makePublicDataTreeLeafPreimage(seed + 0x7000);
1009
- const feeWriteLowLeafMembershipWitness = makeMembershipWitness(PUBLIC_DATA_TREE_HEIGHT, seed + 0x8000);
1010
- const feeWriteSiblingPath = makeTuple(PUBLIC_DATA_TREE_HEIGHT, fr, seed + 0x9000);
1006
+ const feePayerBalanceMembershipWitness = makeMembershipWitness(PUBLIC_DATA_TREE_HEIGHT, seed + 0x8000);
1011
1007
 
1012
- return new PrivateBaseStateDiffHints(
1008
+ return new TreeSnapshotDiffHints(
1009
+ noteHashSubtreeRootSiblingPath,
1013
1010
  nullifierPredecessorPreimages,
1014
1011
  nullifierPredecessorMembershipWitnesses,
1015
1012
  sortedNullifiers,
1016
1013
  sortedNullifierIndexes,
1017
- noteHashSubtreeSiblingPath,
1018
- nullifierSubtreeSiblingPath,
1019
- feeWriteLowLeafPreimage,
1020
- feeWriteLowLeafMembershipWitness,
1021
- feeWriteSiblingPath,
1014
+ nullifierSubtreeRootSiblingPath,
1015
+ feePayerBalanceMembershipWitness,
1022
1016
  );
1023
1017
  }
1024
1018
 
@@ -1047,22 +1041,22 @@ function makePrivateBaseRollupHints(seed = 1) {
1047
1041
 
1048
1042
  const startSpongeBlob = makeSpongeBlob(seed + 0x200);
1049
1043
 
1050
- const stateDiffHints = makePrivateBaseStateDiffHints(seed + 0x600);
1044
+ const treeSnapshotDiffHints = makeTreeSnapshotDiffHints(seed + 0x600);
1051
1045
 
1052
- const archiveRootMembershipWitness = makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x9000);
1046
+ const anchorBlockArchiveSiblingPath = makeSiblingPath(seed + 0x9000, ARCHIVE_HEIGHT);
1053
1047
 
1054
1048
  const contractClassLogsFields = makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x800);
1055
1049
 
1056
1050
  const constants = makeBlockConstantData(0x100);
1057
1051
 
1058
- const feePayerFeeJuiceBalanceReadHint = PublicDataHint.empty();
1052
+ const feePayerBalanceLeafPreimage = PublicDataTreeLeafPreimage.empty();
1059
1053
 
1060
1054
  return PrivateBaseRollupHints.from({
1061
1055
  start,
1062
1056
  startSpongeBlob,
1063
- stateDiffHints,
1064
- feePayerFeeJuiceBalanceReadHint,
1065
- archiveRootMembershipWitness,
1057
+ treeSnapshotDiffHints,
1058
+ feePayerBalanceLeafPreimage,
1059
+ anchorBlockArchiveSiblingPath,
1066
1060
  contractClassLogsFields,
1067
1061
  constants,
1068
1062
  });
@@ -1072,7 +1066,7 @@ function makePublicBaseRollupHints(seed = 1) {
1072
1066
  return PublicBaseRollupHints.from({
1073
1067
  startSpongeBlob: makeSpongeBlob(seed),
1074
1068
  lastArchive: makeAppendOnlyTreeSnapshot(seed + 0x1000),
1075
- archiveRootMembershipWitness: makeMembershipWitness(ARCHIVE_HEIGHT, seed + 0x2000),
1069
+ anchorBlockArchiveSiblingPath: makeSiblingPath(seed + 0x2000, ARCHIVE_HEIGHT),
1076
1070
  contractClassLogsFields: makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, makeContractClassLogFields, seed + 0x3000),
1077
1071
  proverId: fr(seed + 0x4000),
1078
1072
  });
@@ -1085,21 +1079,13 @@ export function makePrivateTxBaseRollupPrivateInputs(seed = 0) {
1085
1079
  });
1086
1080
  }
1087
1081
 
1088
- function makeAvmProofData(seed = 1) {
1089
- return new AvmProofData(
1090
- makeAvmCircuitPublicInputs(seed),
1091
- makeRecursiveProof<typeof AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED>(AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED, seed + 0x100),
1092
- makeVkData(seed + 0x200),
1093
- );
1094
- }
1095
-
1096
1082
  export function makePublicTxBaseRollupPrivateInputs(seed = 0) {
1097
1083
  const publicTubeProofData = makeProofData(
1098
1084
  seed,
1099
1085
  makePrivateToPublicKernelCircuitPublicInputs,
1100
1086
  RECURSIVE_ROLLUP_HONK_PROOF_LENGTH,
1101
1087
  );
1102
- const avmProofData = makeAvmProofData(seed + 0x100);
1088
+ const avmProofData = makeProofData(seed + 0x100, makeAvmCircuitPublicInputs, AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED);
1103
1089
  const hints = makePublicBaseRollupHints(seed + 0x200);
1104
1090
 
1105
1091
  return PublicTxBaseRollupPrivateInputs.from({
@@ -1629,6 +1615,7 @@ export async function makeBloatedProcessedTx({
1629
1615
  // Create avm output.
1630
1616
  const avmOutput = AvmCircuitPublicInputs.empty();
1631
1617
  // Assign data from hints.
1618
+ avmOutput.protocolContractTreeRoot = protocolContractTreeRoot;
1632
1619
  avmOutput.startTreeSnapshots.l1ToL2MessageTree = newL1ToL2Snapshot;
1633
1620
  avmOutput.endTreeSnapshots.l1ToL2MessageTree = newL1ToL2Snapshot;
1634
1621
  // Assign data from private.
@@ -1671,6 +1658,7 @@ export async function makeBloatedProcessedTx({
1671
1658
  i => new PublicDataWrite(new Fr(i), new Fr(i + 10)),
1672
1659
  seed + 0x2000,
1673
1660
  );
1661
+ avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
1674
1662
  avmOutput.gasSettings = gasSettings;
1675
1663
 
1676
1664
  const avmCircuitInputs = await makeAvmCircuitInputs(seed + 0x3000, { publicInputs: avmOutput });
@@ -1,16 +0,0 @@
1
- import { PUBLIC_DATA_TREE_HEIGHT } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { BufferReader } from '@aztec/foundation/serialize';
4
- import { MembershipWitness } from '@aztec/foundation/trees';
5
- import { PublicDataTreeLeafPreimage } from '../trees/index.js';
6
- export declare class PublicDataHint {
7
- leafSlot: Fr;
8
- value: Fr;
9
- membershipWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>;
10
- leafPreimage: PublicDataTreeLeafPreimage;
11
- constructor(leafSlot: Fr, value: Fr, membershipWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>, leafPreimage: PublicDataTreeLeafPreimage);
12
- static empty(): PublicDataHint;
13
- static fromBuffer(buffer: Buffer | BufferReader): PublicDataHint;
14
- toBuffer(): Buffer<ArrayBufferLike>;
15
- }
16
- //# sourceMappingURL=public_data_hint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public_data_hint.d.ts","sourceRoot":"","sources":["../../src/avm/public_data_hint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,qBAAa,cAAc;IAEhB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,uBAAuB,CAAC;IACpE,YAAY,EAAE,0BAA0B;gBAHxC,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE,EAAE,EACT,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,uBAAuB,CAAC,EACpE,YAAY,EAAE,0BAA0B;IAGjD,MAAM,CAAC,KAAK;IASZ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAU/C,QAAQ;CAGT"}
@@ -1,27 +0,0 @@
1
- import { PUBLIC_DATA_TREE_HEIGHT } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
4
- import { MembershipWitness } from '@aztec/foundation/trees';
5
- import { PublicDataTreeLeafPreimage } from '../trees/index.js';
6
- export class PublicDataHint {
7
- leafSlot;
8
- value;
9
- membershipWitness;
10
- leafPreimage;
11
- constructor(leafSlot, value, membershipWitness, leafPreimage){
12
- this.leafSlot = leafSlot;
13
- this.value = value;
14
- this.membershipWitness = membershipWitness;
15
- this.leafPreimage = leafPreimage;
16
- }
17
- static empty() {
18
- return new PublicDataHint(Fr.ZERO, Fr.ZERO, MembershipWitness.empty(PUBLIC_DATA_TREE_HEIGHT), PublicDataTreeLeafPreimage.empty());
19
- }
20
- static fromBuffer(buffer) {
21
- const reader = BufferReader.asReader(buffer);
22
- return new PublicDataHint(reader.readObject(Fr), reader.readObject(Fr), MembershipWitness.fromBuffer(reader, PUBLIC_DATA_TREE_HEIGHT), reader.readObject(PublicDataTreeLeafPreimage));
23
- }
24
- toBuffer() {
25
- return serializeToBuffer(this.leafSlot, this.value, this.membershipWitness, this.leafPreimage);
26
- }
27
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"state_diff_hints.d.ts","sourceRoot":"","sources":["../../src/rollup/state_diff_hints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qCAAqC,EACrC,qCAAqC,EACrC,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEtF;;GAEG;AACH,qBAAa,yBAAyB;IAElC;;;OAGG;IACI,6BAA6B,EAAE,KAAK,CAAC,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;IAChG;;;OAGG;IACI,uCAAuC,EAAE,KAAK,CACnD,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,EAC/C,OAAO,qBAAqB,CAC7B;IACD;;OAEG;IACI,gBAAgB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,qBAAqB,CAAC;IAChE;;OAEG;IACI,sBAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,qBAAqB,CAAC;IAC1E;;OAEG;IACI,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,qCAAqC,CAAC;IAC1F;;OAEG;IACI,2BAA2B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,qCAAqC,CAAC;IAE3F;;OAEG;IACI,uBAAuB,EAAE,0BAA0B;IAC1D;;OAEG;IACI,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,uBAAuB,CAAC;IAC1F;;OAEG;IACI,mBAAmB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,uBAAuB,CAAC;;IAzCrE;;;OAGG;IACI,6BAA6B,EAAE,KAAK,CAAC,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;IAChG;;;OAGG;IACI,uCAAuC,EAAE,KAAK,CACnD,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,EAC/C,OAAO,qBAAqB,CAC7B;IACD;;OAEG;IACI,gBAAgB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,qBAAqB,CAAC;IAChE;;OAEG;IACI,sBAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,qBAAqB,CAAC;IAC1E;;OAEG;IACI,0BAA0B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,qCAAqC,CAAC;IAC1F;;OAEG;IACI,2BAA2B,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,qCAAqC,CAAC;IAE3F;;OAEG;IACI,uBAAuB,EAAE,0BAA0B;IAC1D;;OAEG;IACI,gCAAgC,EAAE,iBAAiB,CAAC,OAAO,uBAAuB,CAAC;IAC1F;;OAEG;IACI,mBAAmB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,uBAAuB,CAAC;IAGvE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAAG,yBAAyB;IAInF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC;IAc5D;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,yBAAyB;IAiB3E,MAAM,CAAC,KAAK;CAab"}