@aztec/stdlib 0.82.2 → 0.82.3-nightly.20250403

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 (206) hide show
  1. package/dest/avm/avm.d.ts +4648 -1474
  2. package/dest/avm/avm.d.ts.map +1 -1
  3. package/dest/avm/avm.js +182 -109
  4. package/dest/avm/avm_proving_request.d.ts +1867 -498
  5. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  6. package/dest/block/l2_block_downloader/l2_block_stream.d.ts +10 -12
  7. package/dest/block/l2_block_downloader/l2_block_stream.d.ts.map +1 -1
  8. package/dest/block/l2_block_downloader/l2_block_stream.js +45 -11
  9. package/dest/config/config.d.ts +2 -2
  10. package/dest/config/config.d.ts.map +1 -1
  11. package/dest/config/config.js +4 -5
  12. package/dest/contract/interfaces/node-info.d.ts +2 -2
  13. package/dest/contract/interfaces/node-info.d.ts.map +1 -1
  14. package/dest/contract/interfaces/node-info.js +1 -1
  15. package/dest/database-version/version_manager.d.ts +4 -2
  16. package/dest/database-version/version_manager.d.ts.map +1 -1
  17. package/dest/database-version/version_manager.js +13 -9
  18. package/dest/epoch-helpers/index.d.ts +2 -0
  19. package/dest/epoch-helpers/index.d.ts.map +1 -1
  20. package/dest/epoch-helpers/index.js +3 -0
  21. package/dest/file-store/factory.d.ts +7 -0
  22. package/dest/file-store/factory.d.ts.map +1 -0
  23. package/dest/file-store/factory.js +46 -0
  24. package/dest/file-store/gcs.d.ts +22 -0
  25. package/dest/file-store/gcs.d.ts.map +1 -0
  26. package/dest/file-store/gcs.js +115 -0
  27. package/dest/file-store/http.d.ts +15 -0
  28. package/dest/file-store/http.d.ts.map +1 -0
  29. package/dest/file-store/http.js +53 -0
  30. package/dest/file-store/index.d.ts +3 -0
  31. package/dest/file-store/index.d.ts.map +1 -0
  32. package/dest/file-store/index.js +2 -0
  33. package/dest/file-store/interface.d.ts +24 -0
  34. package/dest/file-store/interface.d.ts.map +1 -0
  35. package/dest/file-store/interface.js +1 -0
  36. package/dest/file-store/local.d.ts +16 -0
  37. package/dest/file-store/local.d.ts.map +1 -0
  38. package/dest/file-store/local.js +40 -0
  39. package/dest/interfaces/aztec-node-admin.d.ts +9 -1
  40. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  41. package/dest/interfaces/aztec-node-admin.js +2 -1
  42. package/dest/interfaces/aztec-node.d.ts +3 -0
  43. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  44. package/dest/interfaces/aztec-node.js +2 -0
  45. package/dest/interfaces/p2p.d.ts +2 -0
  46. package/dest/interfaces/p2p.d.ts.map +1 -1
  47. package/dest/interfaces/p2p.js +2 -1
  48. package/dest/interfaces/prover-client.d.ts +3 -3
  49. package/dest/interfaces/prover-client.d.ts.map +1 -1
  50. package/dest/interfaces/prover-client.js +6 -4
  51. package/dest/interfaces/prover-node.d.ts +4 -0
  52. package/dest/interfaces/prover-node.d.ts.map +1 -1
  53. package/dest/interfaces/prover-node.js +5 -1
  54. package/dest/interfaces/proving-job.d.ts +1866 -497
  55. package/dest/interfaces/proving-job.d.ts.map +1 -1
  56. package/dest/interfaces/pxe.d.ts +7 -6
  57. package/dest/interfaces/pxe.d.ts.map +1 -1
  58. package/dest/interfaces/pxe.js +1 -1
  59. package/dest/interfaces/service.d.ts +3 -0
  60. package/dest/interfaces/service.d.ts.map +1 -1
  61. package/dest/interfaces/service.js +7 -0
  62. package/dest/interfaces/world_state.d.ts +13 -15
  63. package/dest/interfaces/world_state.d.ts.map +1 -1
  64. package/dest/keys/derivation.d.ts +1 -1
  65. package/dest/keys/derivation.d.ts.map +1 -1
  66. package/dest/keys/derivation.js +10 -2
  67. package/dest/logs/index.d.ts +2 -1
  68. package/dest/logs/index.d.ts.map +1 -1
  69. package/dest/logs/index.js +2 -1
  70. package/dest/logs/pending_tagged_log.d.ts +17 -0
  71. package/dest/logs/pending_tagged_log.d.ts.map +1 -0
  72. package/dest/logs/pending_tagged_log.js +45 -0
  73. package/dest/logs/{l1_payload/shared_secret_derivation.d.ts → shared_secret_derivation.d.ts} +4 -3
  74. package/dest/logs/shared_secret_derivation.d.ts.map +1 -0
  75. package/dest/logs/{l1_payload/shared_secret_derivation.js → shared_secret_derivation.js} +3 -5
  76. package/dest/logs/tx_scoped_l2_log.d.ts +6 -1
  77. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  78. package/dest/logs/tx_scoped_l2_log.js +12 -4
  79. package/dest/note/note.d.ts +45 -4
  80. package/dest/note/note.d.ts.map +1 -1
  81. package/dest/note/note.js +51 -4
  82. package/dest/proofs/proof.d.ts.map +1 -1
  83. package/dest/proofs/proof.js +33 -7
  84. package/dest/snapshots/download.d.ts +9 -0
  85. package/dest/snapshots/download.d.ts.map +1 -0
  86. package/dest/snapshots/download.js +37 -0
  87. package/dest/snapshots/index.d.ts +4 -0
  88. package/dest/snapshots/index.d.ts.map +1 -0
  89. package/dest/snapshots/index.js +3 -0
  90. package/dest/snapshots/types.d.ts +97 -0
  91. package/dest/snapshots/types.d.ts.map +1 -0
  92. package/dest/snapshots/types.js +27 -0
  93. package/dest/snapshots/upload.d.ts +5 -0
  94. package/dest/snapshots/upload.d.ts.map +1 -0
  95. package/dest/snapshots/upload.js +37 -0
  96. package/dest/tests/factories.d.ts +21 -7
  97. package/dest/tests/factories.d.ts.map +1 -1
  98. package/dest/tests/factories.js +78 -30
  99. package/dest/tests/mocks.d.ts +2 -1
  100. package/dest/tests/mocks.d.ts.map +1 -1
  101. package/dest/tests/mocks.js +5 -1
  102. package/dest/trees/merkle_tree_id.d.ts +8 -0
  103. package/dest/trees/merkle_tree_id.d.ts.map +1 -1
  104. package/dest/trees/merkle_tree_id.js +10 -0
  105. package/dest/trees/nullifier_leaf.d.ts +49 -15
  106. package/dest/trees/nullifier_leaf.d.ts.map +1 -1
  107. package/dest/trees/nullifier_leaf.js +45 -22
  108. package/dest/trees/nullifier_membership_witness.d.ts +34 -18
  109. package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
  110. package/dest/trees/protocol_contract_leaf.d.ts +0 -1
  111. package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
  112. package/dest/trees/protocol_contract_leaf.js +0 -3
  113. package/dest/trees/public_data_leaf.d.ts +59 -25
  114. package/dest/trees/public_data_leaf.d.ts.map +1 -1
  115. package/dest/trees/public_data_leaf.js +41 -30
  116. package/dest/trees/public_data_witness.d.ts +42 -24
  117. package/dest/trees/public_data_witness.d.ts.map +1 -1
  118. package/dest/trees/public_data_witness.js +6 -6
  119. package/dest/validators/index.d.ts +3 -0
  120. package/dest/validators/index.d.ts.map +1 -0
  121. package/dest/validators/index.js +1 -0
  122. package/dest/validators/schemas.d.ts +342 -0
  123. package/dest/validators/schemas.d.ts.map +1 -0
  124. package/dest/validators/schemas.js +40 -0
  125. package/dest/validators/types.d.ts +39 -0
  126. package/dest/validators/types.d.ts.map +1 -0
  127. package/dest/validators/types.js +1 -0
  128. package/dest/versioning/versioning.d.ts +1 -1
  129. package/dest/versioning/versioning.d.ts.map +1 -1
  130. package/dest/versioning/versioning.js +6 -6
  131. package/package.json +11 -8
  132. package/src/avm/avm.ts +183 -104
  133. package/src/block/l2_block_downloader/l2_block_stream.ts +64 -29
  134. package/src/config/config.ts +6 -6
  135. package/src/contract/interfaces/node-info.ts +3 -3
  136. package/src/database-version/version_manager.ts +12 -8
  137. package/src/epoch-helpers/index.ts +8 -0
  138. package/src/file-store/factory.ts +61 -0
  139. package/src/file-store/gcs.ts +121 -0
  140. package/src/file-store/http.ts +58 -0
  141. package/src/file-store/index.ts +2 -0
  142. package/src/file-store/interface.ts +19 -0
  143. package/src/file-store/local.ts +46 -0
  144. package/src/interfaces/aztec-node-admin.ts +11 -1
  145. package/src/interfaces/aztec-node.ts +7 -0
  146. package/src/interfaces/p2p.ts +4 -0
  147. package/src/interfaces/prover-client.ts +9 -7
  148. package/src/interfaces/prover-node.ts +10 -0
  149. package/src/interfaces/pxe.ts +14 -7
  150. package/src/interfaces/service.ts +13 -0
  151. package/src/interfaces/world_state.ts +17 -15
  152. package/src/keys/derivation.ts +12 -6
  153. package/src/logs/index.ts +2 -1
  154. package/src/logs/pending_tagged_log.ts +43 -0
  155. package/src/logs/{l1_payload/shared_secret_derivation.ts → shared_secret_derivation.ts} +4 -11
  156. package/src/logs/tx_scoped_l2_log.ts +13 -4
  157. package/src/note/note.ts +61 -5
  158. package/src/proofs/proof.ts +39 -5
  159. package/src/snapshots/download.ts +60 -0
  160. package/src/snapshots/index.ts +3 -0
  161. package/src/snapshots/types.ts +58 -0
  162. package/src/snapshots/upload.ts +55 -0
  163. package/src/tests/factories.ts +137 -53
  164. package/src/tests/mocks.ts +7 -0
  165. package/src/trees/merkle_tree_id.ts +12 -0
  166. package/src/trees/nullifier_leaf.ts +48 -21
  167. package/src/trees/protocol_contract_leaf.ts +0 -4
  168. package/src/trees/public_data_leaf.ts +40 -29
  169. package/src/trees/public_data_witness.ts +6 -6
  170. package/src/validators/index.ts +3 -0
  171. package/src/validators/schemas.ts +53 -0
  172. package/src/validators/types.ts +37 -0
  173. package/src/versioning/versioning.ts +8 -14
  174. package/dest/event/event.d.ts +0 -24
  175. package/dest/event/event.d.ts.map +0 -1
  176. package/dest/event/event.js +0 -13
  177. package/dest/event/event_metadata.d.ts +0 -38
  178. package/dest/event/event_metadata.d.ts.map +0 -1
  179. package/dest/event/event_metadata.js +0 -45
  180. package/dest/event/index.d.ts +0 -4
  181. package/dest/event/index.d.ts.map +0 -1
  182. package/dest/event/index.js +0 -3
  183. package/dest/event/l1_event_payload.d.ts +0 -52
  184. package/dest/event/l1_event_payload.d.ts.map +0 -1
  185. package/dest/event/l1_event_payload.js +0 -64
  186. package/dest/logs/l1_payload/encrypted_log_payload.d.ts +0 -50
  187. package/dest/logs/l1_payload/encrypted_log_payload.d.ts.map +0 -1
  188. package/dest/logs/l1_payload/encrypted_log_payload.js +0 -140
  189. package/dest/logs/l1_payload/encryption_util.d.ts +0 -24
  190. package/dest/logs/l1_payload/encryption_util.d.ts.map +0 -1
  191. package/dest/logs/l1_payload/encryption_util.js +0 -46
  192. package/dest/logs/l1_payload/index.d.ts +0 -3
  193. package/dest/logs/l1_payload/index.d.ts.map +0 -1
  194. package/dest/logs/l1_payload/index.js +0 -2
  195. package/dest/logs/l1_payload/payload.d.ts +0 -60
  196. package/dest/logs/l1_payload/payload.d.ts.map +0 -1
  197. package/dest/logs/l1_payload/payload.js +0 -61
  198. package/dest/logs/l1_payload/shared_secret_derivation.d.ts.map +0 -1
  199. package/src/event/event.ts +0 -16
  200. package/src/event/event_metadata.ts +0 -56
  201. package/src/event/index.ts +0 -3
  202. package/src/event/l1_event_payload.ts +0 -87
  203. package/src/logs/l1_payload/encrypted_log_payload.ts +0 -202
  204. package/src/logs/l1_payload/encryption_util.ts +0 -54
  205. package/src/logs/l1_payload/index.ts +0 -2
  206. package/src/logs/l1_payload/payload.ts +0 -73
@@ -3,14 +3,14 @@ import { ARCHIVE_HEIGHT, AVM_PROOF_LENGTH_IN_FIELDS, AZTEC_MAX_EPOCH_DURATION, B
3
3
  import { makeHalfFullTuple, makeTuple } from '@aztec/foundation/array';
4
4
  import { toBufferBE } from '@aztec/foundation/bigint-buffer';
5
5
  import { compact } from '@aztec/foundation/collection';
6
- import { SchnorrSignature, poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
6
+ import { SchnorrSignature, poseidon2HashWithSeparator, sha256 } from '@aztec/foundation/crypto';
7
7
  import { EthAddress } from '@aztec/foundation/eth-address';
8
8
  import { Fr, GrumpkinScalar, Point } from '@aztec/foundation/fields';
9
9
  import { MembershipWitness } from '@aztec/foundation/trees';
10
10
  import { FunctionSelector } from '../abi/function_selector.js';
11
11
  import { ContractStorageRead } from '../avm/contract_storage_read.js';
12
12
  import { ContractStorageUpdateRequest } from '../avm/contract_storage_update_request.js';
13
- import { AvmAccumulatedData, AvmAppendTreeHint, AvmBytecodeCommitmentHint, AvmCircuitInputs, AvmCircuitPublicInputs, AvmContractClassHint, AvmContractInstanceHint, AvmEnqueuedCallHint, AvmExecutionHints, AvmNullifierReadTreeHint, AvmNullifierWriteTreeHint, AvmPublicDataReadTreeHint, AvmPublicDataWriteTreeHint, RevertCode } from '../avm/index.js';
13
+ import { AvmAccumulatedData, AvmBytecodeCommitmentHint, AvmCircuitInputs, AvmCircuitPublicInputs, AvmContractClassHint, AvmContractInstanceHint, AvmEnqueuedCallHint, AvmExecutionHints, AvmGetLeafPreimageHintNullifierTree, AvmGetLeafPreimageHintPublicDataTree, AvmGetLeafValueHint, AvmGetPreviousValueIndexHint, AvmGetSiblingPathHint, AvmSequentialInsertHintNullifierTree, AvmSequentialInsertHintPublicDataTree, RevertCode } from '../avm/index.js';
14
14
  import { PublicDataHint } from '../avm/public_data_hint.js';
15
15
  import { PublicDataRead } from '../avm/public_data_read.js';
16
16
  import { PublicDataWrite } from '../avm/public_data_write.js';
@@ -60,7 +60,8 @@ import { PublicTubeData } from '../rollup/public_tube_data.js';
60
60
  import { RootRollupInputs, RootRollupPublicInputs } from '../rollup/root_rollup.js';
61
61
  import { PrivateBaseStateDiffHints } from '../rollup/state_diff_hints.js';
62
62
  import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
63
- import { NullifierLeafPreimage } from '../trees/nullifier_leaf.js';
63
+ import { MerkleTreeId } from '../trees/merkle_tree_id.js';
64
+ import { NullifierLeaf, NullifierLeafPreimage } from '../trees/nullifier_leaf.js';
64
65
  import { PublicDataTreeLeaf, PublicDataTreeLeafPreimage } from '../trees/public_data_leaf.js';
65
66
  import { BlockHeader } from '../tx/block_header.js';
66
67
  import { CallContext } from '../tx/call_context.js';
@@ -574,19 +575,33 @@ function makeTreeSnapshots(seed = 0) {
574
575
  */ export function makePublicDataTreeLeaf(seed = 0) {
575
576
  return new PublicDataTreeLeaf(new Fr(seed), new Fr(seed + 1));
576
577
  }
578
+ /**
579
+ * Makes arbitrary nullifier leaf.
580
+ * @param seed - The seed to use for generating the nullifier leaf.
581
+ * @returns A nullifier leaf.
582
+ */ export function makeNullifierLeaf(seed = 0) {
583
+ return new NullifierLeaf(new Fr(seed));
584
+ }
585
+ /**
586
+ * Makes arbitrary nullifier leaf preimages.
587
+ * @param seed - The seed to use for generating the nullifier leaf preimage.
588
+ * @returns A nullifier leaf preimage.
589
+ */ export function makeNullifierLeafPreimage(seed = 0) {
590
+ return new NullifierLeafPreimage(makeNullifierLeaf(seed), new Fr(seed + 1), BigInt(seed + 2));
591
+ }
577
592
  /**
578
593
  * Makes arbitrary public data tree leaf preimages.
579
594
  * @param seed - The seed to use for generating the public data tree leaf preimage.
580
595
  * @returns A public data tree leaf preimage.
581
596
  */ export function makePublicDataTreeLeafPreimage(seed = 0) {
582
- return new PublicDataTreeLeafPreimage(new Fr(seed), new Fr(seed + 1), new Fr(seed + 2), BigInt(seed + 3));
597
+ return new PublicDataTreeLeafPreimage(makePublicDataTreeLeaf(seed), new Fr(seed + 2), BigInt(seed + 3));
583
598
  }
584
599
  /**
585
600
  * Creates an instance of PrivateBaseStateDiffHints with arbitrary values based on the provided seed.
586
601
  * @param seed - The seed to use for generating the hints.
587
602
  * @returns A PrivateBaseStateDiffHints object.
588
603
  */ export function makePrivateBaseStateDiffHints(seed = 1) {
589
- const nullifierPredecessorPreimages = makeTuple(MAX_NULLIFIERS_PER_TX, (x)=>new NullifierLeafPreimage(fr(x), fr(x + 0x100), BigInt(x + 0x200)), seed + 0x1000);
604
+ const nullifierPredecessorPreimages = makeTuple(MAX_NULLIFIERS_PER_TX, (x)=>makeNullifierLeafPreimage(x), seed + 0x1000);
590
605
  const nullifierPredecessorMembershipWitnesses = makeTuple(MAX_NULLIFIERS_PER_TX, (x)=>makeMembershipWitness(NULLIFIER_TREE_HEIGHT, x), seed + 0x2000);
591
606
  const sortedNullifiers = makeTuple(MAX_NULLIFIERS_PER_TX, fr, seed + 0x3000);
592
607
  const sortedNullifierIndexes = makeTuple(MAX_NULLIFIERS_PER_TX, (i)=>i, seed + 0x4000);
@@ -757,24 +772,57 @@ export async function makeContractInstanceFromClassId(classId, seed = 0, overrid
757
772
  publicKeys
758
773
  }).withAddress(address);
759
774
  }
760
- export function makeAvmTreeHints(seed = 0) {
761
- return new AvmAppendTreeHint(new Fr(seed), new Fr(seed + 1), makeArray(10, (i)=>new Fr(i), seed + 0x1000));
762
- }
763
- export function makeAvmNullifierReadTreeHints(seed = 0) {
764
- const lowNullifierPreimage = new NullifierLeafPreimage(new Fr(seed), new Fr(seed + 1), BigInt(seed + 2));
765
- return new AvmNullifierReadTreeHint(lowNullifierPreimage, new Fr(seed + 1), makeArray(10, (i)=>new Fr(i), seed + 0x1000));
766
- }
767
- export function makeAvmPublicDataReadTreeHints(seed = 0) {
768
- return new AvmPublicDataReadTreeHint(new PublicDataTreeLeafPreimage(new Fr(seed), new Fr(seed + 1), new Fr(seed + 2), BigInt(seed + 3)), new Fr(seed + 1), makeArray(10, (i)=>new Fr(i), seed + 0x1000));
769
- }
770
- export function makeAvmNullifierInsertionTreeHints(seed = 0) {
771
- return new AvmNullifierWriteTreeHint(makeAvmNullifierReadTreeHints(seed), makeArray(20, (i)=>new Fr(i), seed + 0x1000));
772
- }
773
- export function makeAvmStorageReadTreeHints(seed = 0) {
774
- return new AvmPublicDataReadTreeHint(new PublicDataTreeLeafPreimage(new Fr(seed), new Fr(seed + 1), new Fr(seed + 2), BigInt(seed + 3)), new Fr(seed + 1), makeArray(10, (i)=>new Fr(i), seed + 0x1000));
775
+ export function makeAvmGetSiblingPathHint(seed = 0) {
776
+ // We want a possibly large index, but non-random.
777
+ const index = BigInt(`0x${sha256(Buffer.from(seed.toString())).toString('hex')}`) % (1n << 64n);
778
+ return new AvmGetSiblingPathHint(makeAppendOnlyTreeSnapshot(seed), /*treeId=*/ (seed + 1) % 5, /*index=*/ index, makeArray(seed % 64, (i)=>new Fr(i), seed + 10));
779
+ }
780
+ export function makeAvmGetPreviousValueIndexHint(seed = 0) {
781
+ // We want a possibly large index, but non-random.
782
+ const index = BigInt(`0x${sha256(Buffer.from(seed.toString())).toString('hex')}`) % (1n << 64n);
783
+ const value = new Fr(BigInt(`0x${sha256(Buffer.from((seed + 2).toString())).toString('hex')}`) % (1n << 128n));
784
+ return new AvmGetPreviousValueIndexHint(makeAppendOnlyTreeSnapshot(seed), /*treeId=*/ (seed + 1) % 5, value, index, /*alreadyPresent=*/ index % 2n === 0n);
785
+ }
786
+ export function makeAvmGetLeafPreimageHintPublicDataTree(seed = 0) {
787
+ // We want a possibly large index, but non-random.
788
+ const index = BigInt(`0x${sha256(Buffer.from(seed.toString())).toString('hex')}`) % (1n << 64n);
789
+ return new AvmGetLeafPreimageHintPublicDataTree(makeAppendOnlyTreeSnapshot(seed), /*index=*/ index, /*leafPreimage=*/ makePublicDataTreeLeafPreimage(seed + 3));
790
+ }
791
+ export function makeAvmGetLeafPreimageHintNullifierTree(seed = 0) {
792
+ // We want a possibly large index, but non-random.
793
+ const index = BigInt(`0x${sha256(Buffer.from(seed.toString())).toString('hex')}`) % (1n << 64n);
794
+ return new AvmGetLeafPreimageHintNullifierTree(makeAppendOnlyTreeSnapshot(seed), /*index=*/ index, /*leafPreimage=*/ makeNullifierLeafPreimage(seed + 3));
795
+ }
796
+ export function makeAvmGetLeafValueHint(seed = 0) {
797
+ // We want a possibly large index, but non-random.
798
+ const index = BigInt(`0x${sha256(Buffer.from(seed.toString())).toString('hex')}`) % (1n << 64n);
799
+ return new AvmGetLeafValueHint(makeAppendOnlyTreeSnapshot(seed), /*treeId=*/ (seed + 1) % 5, /*index=*/ index, /*value=*/ new Fr(seed + 3));
800
+ }
801
+ export function makeAvmSequentialInsertHintPublicDataTree(seed = 0) {
802
+ const lowLeavesWitnessData = {
803
+ leaf: makePublicDataTreeLeafPreimage(seed + 3),
804
+ index: BigInt(seed + 4),
805
+ path: makeArray(seed % 64, (i)=>new Fr(i), seed + 5)
806
+ };
807
+ const insertionWitnessData = {
808
+ leaf: makePublicDataTreeLeafPreimage(seed + 6),
809
+ index: BigInt(seed + 7),
810
+ path: makeArray(seed % 64, (i)=>new Fr(i), seed + 8)
811
+ };
812
+ return new AvmSequentialInsertHintPublicDataTree(makeAppendOnlyTreeSnapshot(seed), makeAppendOnlyTreeSnapshot(seed + 1), MerkleTreeId.PUBLIC_DATA_TREE, makePublicDataTreeLeaf(seed + 2), lowLeavesWitnessData, insertionWitnessData);
775
813
  }
776
- export function makeAvmStorageUpdateTreeHints(seed = 0) {
777
- return new AvmPublicDataWriteTreeHint(makeAvmStorageReadTreeHints(seed), new PublicDataTreeLeafPreimage(new Fr(seed), new Fr(seed + 1), new Fr(seed + 2), BigInt(seed + 3)), makeArray(20, (i)=>new Fr(i), seed + 0x1000));
814
+ export function makeAvmSequentialInsertHintNullifierTree(seed = 0) {
815
+ const lowLeavesWitnessData = {
816
+ leaf: makeNullifierLeafPreimage(seed + 3),
817
+ index: BigInt(seed + 4),
818
+ path: makeArray(seed % 64, (i)=>new Fr(i), seed + 5)
819
+ };
820
+ const insertionWitnessData = {
821
+ leaf: makeNullifierLeafPreimage(seed + 6),
822
+ index: BigInt(seed + 7),
823
+ path: makeArray(seed % 64, (i)=>new Fr(i), seed + 8)
824
+ };
825
+ return new AvmSequentialInsertHintNullifierTree(makeAppendOnlyTreeSnapshot(seed), makeAppendOnlyTreeSnapshot(seed + 1), MerkleTreeId.NULLIFIER_TREE, makeNullifierLeaf(seed + 2), lowLeavesWitnessData, insertionWitnessData);
778
826
  }
779
827
  /**
780
828
  * Makes arbitrary AvmContractInstanceHint.
@@ -811,16 +859,16 @@ export function makeAvmEnqueuedCallHint(seed = 0) {
811
859
  contractInstances: makeArray(baseLength + 2, makeAvmContractInstanceHint, seed + 0x4700),
812
860
  contractClasses: makeArray(baseLength + 5, makeAvmContractClassHint, seed + 0x4900),
813
861
  bytecodeCommitments: await makeArrayAsync(baseLength + 5, makeAvmBytecodeCommitmentHint, seed + 0x4900),
814
- publicDataReads: makeArray(baseLength + 7, makeAvmStorageReadTreeHints, seed + 0x4900),
815
- publicDataWrites: makeArray(baseLength + 8, makeAvmStorageUpdateTreeHints, seed + 0x4a00),
816
- nullifierReads: makeArray(baseLength + 9, makeAvmNullifierReadTreeHints, seed + 0x4b00),
817
- nullifierWrites: makeArray(baseLength + 10, makeAvmNullifierInsertionTreeHints, seed + 0x4c00),
818
- noteHashReads: makeArray(baseLength + 11, makeAvmTreeHints, seed + 0x4d00),
819
- noteHashWrites: makeArray(baseLength + 12, makeAvmTreeHints, seed + 0x4e00),
820
- l1ToL2MessageReads: makeArray(baseLength + 13, makeAvmTreeHints, seed + 0x4f00),
862
+ getSiblingPathHints: makeArray(baseLength + 5, makeAvmGetSiblingPathHint, seed + 0x4b00),
863
+ getPreviousValueIndexHints: makeArray(baseLength + 5, makeAvmGetPreviousValueIndexHint, seed + 0x4d00),
864
+ getLeafPreimageHintPublicDataTree: makeArray(baseLength + 5, makeAvmGetLeafPreimageHintPublicDataTree, seed + 0x4f00),
865
+ getLeafPreimageHintNullifierTree: makeArray(baseLength + 5, makeAvmGetLeafPreimageHintNullifierTree, seed + 0x5100),
866
+ getLeafValueHints: makeArray(baseLength + 5, makeAvmGetLeafValueHint, seed + 0x5300),
867
+ sequentialInsertHintsPublicDataTree: makeArray(baseLength + 5, makeAvmSequentialInsertHintPublicDataTree, seed + 0x5500),
868
+ sequentialInsertHintsNullifierTree: makeArray(baseLength + 5, makeAvmSequentialInsertHintNullifierTree, seed + 0x5700),
821
869
  ...overrides
822
870
  };
823
- return new AvmExecutionHints(fields.enqueuedCalls, fields.contractInstances, fields.contractClasses, fields.bytecodeCommitments, fields.publicDataReads, fields.publicDataWrites, fields.nullifierReads, fields.nullifierWrites, fields.noteHashReads, fields.noteHashWrites, fields.l1ToL2MessageReads);
871
+ return new AvmExecutionHints(fields.enqueuedCalls, fields.contractInstances, fields.contractClasses, fields.bytecodeCommitments, fields.getSiblingPathHints, fields.getPreviousValueIndexHints, fields.getLeafPreimageHintPublicDataTree, fields.getLeafPreimageHintNullifierTree, fields.getLeafValueHints, fields.sequentialInsertHintsPublicDataTree, fields.sequentialInsertHintsNullifierTree);
824
872
  }
825
873
  /**
826
874
  * Creates arbitrary AvmCircuitInputs.
@@ -13,9 +13,10 @@ import { TxHash } from '../tx/tx_hash.js';
13
13
  export declare const randomTxHash: () => TxHash;
14
14
  export declare const randomExtendedNote: ({ note, recipient, contractAddress, txHash, storageSlot, }?: Partial<ExtendedNote>) => Promise<ExtendedNote>;
15
15
  export declare const randomUniqueNote: ({ note, recipient, contractAddress, txHash, storageSlot, nonce, }?: Partial<UniqueNote>) => Promise<UniqueNote>;
16
- export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRequests, numberOfRevertiblePublicCallRequests, hasPublicTeardownCallRequest, publicCalldataSize, feePayer, clientIvcProof, }?: {
16
+ export declare const mockTx: (seed?: number, { numberOfNonRevertiblePublicCallRequests, numberOfRevertiblePublicCallRequests, numberOfRevertibleNullifiers, hasPublicTeardownCallRequest, publicCalldataSize, feePayer, clientIvcProof, }?: {
17
17
  numberOfNonRevertiblePublicCallRequests?: number;
18
18
  numberOfRevertiblePublicCallRequests?: number;
19
+ numberOfRevertibleNullifiers?: number;
19
20
  hasPublicTeardownCallRequest?: boolean;
20
21
  publicCalldataSize?: number;
21
22
  feePayer?: AztecAddress;
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAe,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAUxE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAoE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEnH,OAAO,EAAE,kBAAkB,EAAiC,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,YAAY,QAAO,MAAyB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,gEAM5B,QAAQ,YAAY,CAAC,0BAQvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,uEAO1B,QAAQ,UAAU,CAAC,wBASrB,CAAC;AAEF,eAAO,MAAM,MAAM,mLASd;IACD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,gBA6CF,CAAC;AAEF,eAAO,MAAM,eAAe,gCAC2E,CAAC;AAkBxG,eAAO,MAAM,eAAe,gDAgB3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,gBAWxC,CAAC;AAEH,eAAO,MAAM,iCAAiC,UACtC;IAAE,eAAe,CAAC,EAAE,EAAE,CAAA;CAAE,YACpB,YAAY,KACrB,QAAQ,2BAA2B,CAUrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;EAIlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAyBD,eAAO,MAAM,iBAAiB,aAAoB,2BAA2B,KAAG,QAAQ,aAAa,CAGpG,CAAC;AAGF,eAAO,MAAM,oBAAoB,aAAoB,2BAA2B,KAAG,QAAQ,gBAAgB,CAG1G,CAAC"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAe,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAUxE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAoE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEnH,OAAO,EAAE,kBAAkB,EAAiC,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,YAAY,QAAO,MAAyB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,gEAM5B,QAAQ,YAAY,CAAC,0BAQvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,uEAO1B,QAAQ,UAAU,CAAC,wBASrB,CAAC;AAEF,eAAO,MAAM,MAAM,iNAUd;IACD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,gBAkDF,CAAC;AAEF,eAAO,MAAM,eAAe,gCAC2E,CAAC;AAkBxG,eAAO,MAAM,eAAe,gDAgB3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,gBAWxC,CAAC;AAEH,eAAO,MAAM,iCAAiC,UACtC;IAAE,eAAe,CAAC,EAAE,EAAE,CAAA;CAAE,YACpB,YAAY,KACrB,QAAQ,2BAA2B,CAUrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;EAIlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAyBD,eAAO,MAAM,iBAAiB,aAAoB,2BAA2B,KAAG,QAAQ,aAAa,CAGpG,CAAC;AAGF,eAAO,MAAM,oBAAoB,aAAoB,2BAA2B,KAAG,QAAQ,gBAAgB,CAG1G,CAAC"}
@@ -32,7 +32,7 @@ export const randomExtendedNote = async ({ note = Note.random(), recipient = und
32
32
  export const randomUniqueNote = async ({ note = Note.random(), recipient = undefined, contractAddress = undefined, txHash = randomTxHash(), storageSlot = Fr.random(), nonce = Fr.random() } = {})=>{
33
33
  return new UniqueNote(note, recipient ?? await AztecAddress.random(), contractAddress ?? await AztecAddress.random(), storageSlot, txHash, nonce);
34
34
  };
35
- export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, clientIvcProof = ClientIvcProof.empty() } = {})=>{
35
+ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertiblePublicCallRequests = MAX_ENQUEUED_CALLS_PER_TX / 2, numberOfRevertibleNullifiers = 0, hasPublicTeardownCallRequest = false, publicCalldataSize = 2, feePayer, clientIvcProof = ClientIvcProof.empty() } = {})=>{
36
36
  const totalPublicCallRequests = numberOfNonRevertiblePublicCallRequests + numberOfRevertiblePublicCallRequests + (hasPublicTeardownCallRequest ? 1 : 0);
37
37
  const isForPublic = totalPublicCallRequests > 0;
38
38
  const data = PrivateKernelTailCircuitPublicInputs.empty();
@@ -60,6 +60,10 @@ export const mockTx = async (seed = 1, { numberOfNonRevertiblePublicCallRequests
60
60
  data.forPublic.publicTeardownCallRequest = publicCallRequests.pop();
61
61
  }
62
62
  data.forPublic.nonRevertibleAccumulatedData = nonRevertibleBuilder.pushNullifier(firstNullifier.value).withPublicCallRequests(publicCallRequests.slice(numberOfRevertiblePublicCallRequests)).build();
63
+ for(let i = 0; i < numberOfRevertibleNullifiers; i++){
64
+ const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i), 0, Fr.ZERO);
65
+ revertibleBuilder.pushNullifier(revertibleNullifier.value);
66
+ }
63
67
  data.forPublic.revertibleAccumulatedData = revertibleBuilder.withPublicCallRequests(publicCallRequests.slice(0, numberOfRevertiblePublicCallRequests)).build();
64
68
  }
65
69
  return new Tx(data, clientIvcProof, [], publicFunctionCalldata);
@@ -19,5 +19,13 @@ declare const TREE_HEIGHTS: {
19
19
  };
20
20
  export type TreeHeights = typeof TREE_HEIGHTS;
21
21
  export declare function getTreeHeight<TID extends MerkleTreeId>(treeId: TID): TreeHeights[TID];
22
+ declare const TREE_NAMES: {
23
+ readonly 0: "NULLIFIER_TREE";
24
+ readonly 1: "NOTE_HASH_TREE";
25
+ readonly 2: "PUBLIC_DATA_TREE";
26
+ readonly 3: "L1_TO_L2_MESSAGE_TREE";
27
+ readonly 4: "ARCHIVE";
28
+ };
29
+ export declare function getTreeName<TID extends MerkleTreeId>(treeId: TID): (typeof TREE_NAMES)[TID];
22
30
  export {};
23
31
  //# sourceMappingURL=merkle_tree_id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merkle_tree_id.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_id.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,oBAAY,YAAY;IACtB,cAAc,IAAoB,CAAE,IAAI;IACxC,cAAc,IAAoB,CAAE,IAAI;IACxC,gBAAgB,IAAsB,CAAE,IAAI;IAC5C,qBAAqB,IAA2B,CAAE,IAAI;IACtD,OAAO,IAAkB;CAC1B;AAED,eAAO,MAAM,aAAa,sBAEzB,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;CAMR,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC;AAE9C,wBAAgB,aAAa,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAErF"}
1
+ {"version":3,"file":"merkle_tree_id.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_id.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,oBAAY,YAAY;IACtB,cAAc,IAAoB,CAAE,IAAI;IACxC,cAAc,IAAoB,CAAE,IAAI;IACxC,gBAAgB,IAAsB,CAAE,IAAI;IAC5C,qBAAqB,IAA2B,CAAE,IAAI;IACtD,OAAO,IAAkB;CAC1B;AAED,eAAO,MAAM,aAAa,sBAEzB,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;CAMR,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC;AAE9C,wBAAgB,aAAa,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAErF;AAED,QAAA,MAAM,UAAU;;;;;;CAMN,CAAC;AAEX,wBAAgB,WAAW,CAAC,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,GAAG,CAAC,CAE3F"}
@@ -23,3 +23,13 @@ const TREE_HEIGHTS = {
23
23
  export function getTreeHeight(treeId) {
24
24
  return TREE_HEIGHTS[treeId];
25
25
  }
26
+ const TREE_NAMES = {
27
+ [MerkleTreeId.NULLIFIER_TREE]: 'NULLIFIER_TREE',
28
+ [MerkleTreeId.NOTE_HASH_TREE]: 'NOTE_HASH_TREE',
29
+ [MerkleTreeId.PUBLIC_DATA_TREE]: 'PUBLIC_DATA_TREE',
30
+ [MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: 'L1_TO_L2_MESSAGE_TREE',
31
+ [MerkleTreeId.ARCHIVE]: 'ARCHIVE'
32
+ };
33
+ export function getTreeName(treeId) {
34
+ return TREE_NAMES[treeId];
35
+ }
@@ -12,11 +12,11 @@ export declare class NullifierLeafPreimage implements IndexedTreeLeafPreimage {
12
12
  /**
13
13
  * Leaf value inside the indexed tree's linked list.
14
14
  */
15
- nullifier: Fr;
15
+ leaf: NullifierLeaf;
16
16
  /**
17
- * Next value inside the indexed tree's linked list.
17
+ * Next nullifier inside the indexed tree's linked list.
18
18
  */
19
- nextNullifier: Fr;
19
+ nextKey: Fr;
20
20
  /**
21
21
  * Index of the next leaf in the indexed tree's linked list.
22
22
  */
@@ -25,32 +25,53 @@ export declare class NullifierLeafPreimage implements IndexedTreeLeafPreimage {
25
25
  /**
26
26
  * Leaf value inside the indexed tree's linked list.
27
27
  */
28
- nullifier: Fr,
28
+ leaf: NullifierLeaf,
29
29
  /**
30
- * Next value inside the indexed tree's linked list.
30
+ * Next nullifier inside the indexed tree's linked list.
31
31
  */
32
- nextNullifier: Fr,
32
+ nextKey: Fr,
33
33
  /**
34
34
  * Index of the next leaf in the indexed tree's linked list.
35
35
  */
36
36
  nextIndex: bigint);
37
37
  static get schema(): z.ZodEffects<z.ZodObject<{
38
- nullifier: z.ZodType<Fr, any, string>;
39
- nextNullifier: z.ZodType<Fr, any, string>;
38
+ leaf: z.ZodEffects<z.ZodObject<{
39
+ nullifier: z.ZodType<Fr, any, string>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ nullifier: Fr;
42
+ }, {
43
+ nullifier: string;
44
+ }>, NullifierLeaf, {
45
+ nullifier: string;
46
+ }>;
47
+ nextKey: z.ZodType<Fr, any, string>;
40
48
  nextIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
41
49
  }, "strip", z.ZodTypeAny, {
42
- nullifier: Fr;
43
- nextNullifier: Fr;
50
+ leaf: NullifierLeaf;
51
+ nextKey: Fr;
44
52
  nextIndex: bigint;
45
53
  }, {
46
- nullifier: string;
47
- nextNullifier: string;
54
+ leaf: {
55
+ nullifier: string;
56
+ };
57
+ nextKey: string;
48
58
  nextIndex: string | number | bigint;
49
59
  }>, NullifierLeafPreimage, {
50
- nullifier: string;
51
- nextNullifier: string;
60
+ leaf: {
61
+ nullifier: string;
62
+ };
63
+ nextKey: string;
52
64
  nextIndex: string | number | bigint;
53
65
  }>;
66
+ static get leafSchema(): z.ZodEffects<z.ZodObject<{
67
+ nullifier: z.ZodType<Fr, any, string>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ nullifier: Fr;
70
+ }, {
71
+ nullifier: string;
72
+ }>, NullifierLeaf, {
73
+ nullifier: string;
74
+ }>;
54
75
  getKey(): bigint;
55
76
  getNextKey(): bigint;
56
77
  getNextIndex(): bigint;
@@ -80,9 +101,22 @@ export declare class NullifierLeaf implements IndexedTreeLeaf {
80
101
  nullifier: Fr);
81
102
  getKey(): bigint;
82
103
  toBuffer(): Buffer;
104
+ clone(): NullifierLeaf;
105
+ toHashInputs(): Buffer[];
106
+ static empty(): NullifierLeaf;
107
+ static random(): NullifierLeaf;
83
108
  isEmpty(): boolean;
84
109
  updateTo(_another: NullifierLeaf): NullifierLeaf;
85
110
  static buildDummy(key: bigint): NullifierLeaf;
86
- static fromBuffer(buf: Buffer): NullifierLeaf;
111
+ static fromBuffer(buf: Buffer | BufferReader): NullifierLeaf;
112
+ static get schema(): z.ZodEffects<z.ZodObject<{
113
+ nullifier: z.ZodType<Fr, any, string>;
114
+ }, "strip", z.ZodTypeAny, {
115
+ nullifier: Fr;
116
+ }, {
117
+ nullifier: string;
118
+ }>, NullifierLeaf, {
119
+ nullifier: string;
120
+ }>;
87
121
  }
88
122
  //# sourceMappingURL=nullifier_leaf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nullifier_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/nullifier_leaf.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IAEjE;;OAEG;IACI,SAAS,EAAE,EAAE;IACpB;;OAEG;IACI,aAAa,EAAE,EAAE;IACxB;;OAEG;IACI,SAAS,EAAE,MAAM;;IAXxB;;OAEG;IACI,SAAS,EAAE,EAAE;IACpB;;OAEG;IACI,aAAa,EAAE,EAAE;IACxB;;OAEG;IACI,SAAS,EAAE,MAAM;IAG1B,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAUhB;IAED,MAAM,IAAI,MAAM;IAIhB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,MAAM;IAItB,MAAM,IAAI,aAAa;IAIvB,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM,EAAE;IAQxB,QAAQ,IAAI,EAAE,EAAE;IAIhB,KAAK,IAAI,qBAAqB;IAI9B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,KAAK,IAAI,qBAAqB;IAIrC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qBAAqB;IAKvE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,qBAAqB;IAI/F,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,GAAG,qBAAqB;CAGrE;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAEjD;;OAEG;IACI,SAAS,EAAE,EAAE;;IAHpB;;OAEG;IACI,SAAS,EAAE,EAAE;IAGtB,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,OAAO;IAIlB,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;IAIhD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAI7C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;CAG9C"}
1
+ {"version":3,"file":"nullifier_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/nullifier_leaf.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IAEjE;;OAEG;IACI,IAAI,EAAE,aAAa;IAC1B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM;;IAXxB;;OAEG;IACI,IAAI,EAAE,aAAa;IAC1B;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,SAAS,EAAE,MAAM;IAG1B,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,KAAK,UAAU;;;;;;;;OAEpB;IAED,MAAM,IAAI,MAAM;IAIhB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,MAAM;IAItB,MAAM,IAAI,aAAa;IAIvB,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM,EAAE;IAQxB,QAAQ,IAAI,EAAE,EAAE;IAIhB,KAAK,IAAI,qBAAqB;IAI9B,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,KAAK,IAAI,qBAAqB;IAIrC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qBAAqB;IASvE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,qBAAqB;IAI/F,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,GAAG,qBAAqB;CAGrE;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAEjD;;OAEG;IACI,SAAS,EAAE,EAAE;;IAHpB;;OAEG;IACI,SAAS,EAAE,EAAE;IAGtB,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,aAAa;IAItB,YAAY,IAAI,MAAM,EAAE;IAIxB,MAAM,CAAC,KAAK,IAAI,aAAa;IAI7B,MAAM,CAAC,MAAM,IAAI,aAAa;IAI9B,OAAO,IAAI,OAAO;IAIlB,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;IAIhD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAI7C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa;IAK5D,MAAM,KAAK,MAAM;;;;;;;;OAEhB;CACF"}
@@ -7,46 +7,49 @@ import { z } from 'zod';
7
7
  * Class containing the data of a preimage of a single leaf in the nullifier tree.
8
8
  * Note: It's called preimage because this data gets hashed before being inserted as a node into the `IndexedTree`.
9
9
  */ export class NullifierLeafPreimage {
10
- nullifier;
11
- nextNullifier;
10
+ leaf;
11
+ nextKey;
12
12
  nextIndex;
13
13
  constructor(/**
14
14
  * Leaf value inside the indexed tree's linked list.
15
- */ nullifier, /**
16
- * Next value inside the indexed tree's linked list.
17
- */ nextNullifier, /**
15
+ */ leaf, /**
16
+ * Next nullifier inside the indexed tree's linked list.
17
+ */ nextKey, /**
18
18
  * Index of the next leaf in the indexed tree's linked list.
19
19
  */ nextIndex){
20
- this.nullifier = nullifier;
21
- this.nextNullifier = nextNullifier;
20
+ this.leaf = leaf;
21
+ this.nextKey = nextKey;
22
22
  this.nextIndex = nextIndex;
23
23
  }
24
24
  static get schema() {
25
25
  return z.object({
26
- nullifier: schemas.Fr,
27
- nextNullifier: schemas.Fr,
26
+ leaf: NullifierLeaf.schema,
27
+ nextKey: schemas.Fr,
28
28
  nextIndex: schemas.BigInt
29
- }).transform(({ nullifier, nextNullifier, nextIndex })=>new NullifierLeafPreimage(nullifier, nextNullifier, nextIndex));
29
+ }).transform(({ leaf, nextKey, nextIndex })=>new NullifierLeafPreimage(leaf, nextKey, nextIndex));
30
+ }
31
+ static get leafSchema() {
32
+ return NullifierLeaf.schema;
30
33
  }
31
34
  getKey() {
32
- return this.nullifier.toBigInt();
35
+ return this.leaf.getKey();
33
36
  }
34
37
  getNextKey() {
35
- return this.nextNullifier.toBigInt();
38
+ return this.nextKey.toBigInt();
36
39
  }
37
40
  getNextIndex() {
38
41
  return this.nextIndex;
39
42
  }
40
43
  asLeaf() {
41
- return new NullifierLeaf(this.nullifier);
44
+ return this.leaf;
42
45
  }
43
46
  toBuffer() {
44
47
  return Buffer.concat(this.toHashInputs());
45
48
  }
46
49
  toHashInputs() {
47
50
  return [
48
- Buffer.from(this.nullifier.toBuffer()),
49
- Buffer.from(this.nextNullifier.toBuffer()),
51
+ ...this.leaf.toHashInputs(),
52
+ Buffer.from(this.nextKey.toBuffer()),
50
53
  Buffer.from(toBufferBE(this.nextIndex, 32))
51
54
  ];
52
55
  }
@@ -54,23 +57,23 @@ import { z } from 'zod';
54
57
  return this.toHashInputs().map((buf)=>Fr.fromBuffer(buf));
55
58
  }
56
59
  clone() {
57
- return new NullifierLeafPreimage(this.nullifier, this.nextNullifier, this.nextIndex);
60
+ return new NullifierLeafPreimage(this.leaf.clone(), this.nextKey, this.nextIndex);
58
61
  }
59
62
  static random() {
60
- return new NullifierLeafPreimage(Fr.random(), Fr.random(), BigInt(Math.floor(Math.random() * 1000)));
63
+ return new NullifierLeafPreimage(NullifierLeaf.random(), Fr.random(), BigInt(Math.floor(Math.random() * 1000)));
61
64
  }
62
65
  static empty() {
63
- return new NullifierLeafPreimage(Fr.ZERO, Fr.ZERO, 0n);
66
+ return new NullifierLeafPreimage(NullifierLeaf.empty(), Fr.zero(), 0n);
64
67
  }
65
68
  static fromBuffer(buffer) {
66
69
  const reader = BufferReader.asReader(buffer);
67
- return new NullifierLeafPreimage(reader.readObject(Fr), reader.readObject(Fr), toBigIntBE(reader.readBytes(32)));
70
+ return new NullifierLeafPreimage(NullifierLeaf.fromBuffer(reader), reader.readObject(Fr), toBigIntBE(reader.readBytes(32)));
68
71
  }
69
72
  static fromLeaf(leaf, nextKey, nextIndex) {
70
- return new NullifierLeafPreimage(leaf.nullifier, new Fr(nextKey), nextIndex);
73
+ return new NullifierLeafPreimage(leaf, new Fr(nextKey), nextIndex);
71
74
  }
72
75
  static clone(preimage) {
73
- return new NullifierLeafPreimage(preimage.nullifier, preimage.nextNullifier, preimage.nextIndex);
76
+ return preimage.clone();
74
77
  }
75
78
  }
76
79
  /**
@@ -88,6 +91,20 @@ import { z } from 'zod';
88
91
  toBuffer() {
89
92
  return this.nullifier.toBuffer();
90
93
  }
94
+ clone() {
95
+ return new NullifierLeaf(new Fr(this.nullifier));
96
+ }
97
+ toHashInputs() {
98
+ return [
99
+ Buffer.from(this.nullifier.toBuffer())
100
+ ];
101
+ }
102
+ static empty() {
103
+ return new NullifierLeaf(Fr.ZERO);
104
+ }
105
+ static random() {
106
+ return new NullifierLeaf(Fr.random());
107
+ }
91
108
  isEmpty() {
92
109
  return this.nullifier.isZero();
93
110
  }
@@ -98,6 +115,12 @@ import { z } from 'zod';
98
115
  return new NullifierLeaf(new Fr(key));
99
116
  }
100
117
  static fromBuffer(buf) {
101
- return new NullifierLeaf(Fr.fromBuffer(buf));
118
+ const reader = BufferReader.asReader(buf);
119
+ return new NullifierLeaf(reader.readObject(Fr));
120
+ }
121
+ static get schema() {
122
+ return z.object({
123
+ nullifier: schemas.Fr
124
+ }).transform(({ nullifier })=>new NullifierLeaf(nullifier));
102
125
  }
103
126
  }
@@ -40,20 +40,32 @@ export declare class NullifierMembershipWitness {
40
40
  static get schema(): z.ZodEffects<z.ZodObject<{
41
41
  index: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
42
42
  leafPreimage: z.ZodEffects<z.ZodObject<{
43
- nullifier: z.ZodType<Fr, any, string>;
44
- nextNullifier: z.ZodType<Fr, any, string>;
43
+ leaf: z.ZodEffects<z.ZodObject<{
44
+ nullifier: z.ZodType<Fr, any, string>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ nullifier: Fr;
47
+ }, {
48
+ nullifier: string;
49
+ }>, import("./nullifier_leaf.js").NullifierLeaf, {
50
+ nullifier: string;
51
+ }>;
52
+ nextKey: z.ZodType<Fr, any, string>;
45
53
  nextIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
46
54
  }, "strip", z.ZodTypeAny, {
47
- nullifier: Fr;
48
- nextNullifier: Fr;
55
+ leaf: import("./nullifier_leaf.js").NullifierLeaf;
56
+ nextKey: Fr;
49
57
  nextIndex: bigint;
50
58
  }, {
51
- nullifier: string;
52
- nextNullifier: string;
59
+ leaf: {
60
+ nullifier: string;
61
+ };
62
+ nextKey: string;
53
63
  nextIndex: string | number | bigint;
54
64
  }>, NullifierLeafPreimage, {
55
- nullifier: string;
56
- nextNullifier: string;
65
+ leaf: {
66
+ nullifier: string;
67
+ };
68
+ nextKey: string;
57
69
  nextIndex: string | number | bigint;
58
70
  }>;
59
71
  siblingPath: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
@@ -77,30 +89,34 @@ export declare class NullifierMembershipWitness {
77
89
  }>;
78
90
  }, "strip", z.ZodTypeAny, {
79
91
  index: bigint;
80
- siblingPath: SiblingPath<40>;
81
92
  leafPreimage: NullifierLeafPreimage;
93
+ siblingPath: SiblingPath<40>;
82
94
  }, {
83
95
  index: string | number | bigint;
96
+ leafPreimage: {
97
+ leaf: {
98
+ nullifier: string;
99
+ };
100
+ nextKey: string;
101
+ nextIndex: string | number | bigint;
102
+ };
84
103
  siblingPath: string | {
85
104
  type: "Buffer";
86
105
  data: number[];
87
106
  };
107
+ }>, NullifierMembershipWitness, {
108
+ index: string | number | bigint;
88
109
  leafPreimage: {
89
- nullifier: string;
90
- nextNullifier: string;
110
+ leaf: {
111
+ nullifier: string;
112
+ };
113
+ nextKey: string;
91
114
  nextIndex: string | number | bigint;
92
115
  };
93
- }>, NullifierMembershipWitness, {
94
- index: string | number | bigint;
95
116
  siblingPath: string | {
96
117
  type: "Buffer";
97
118
  data: number[];
98
119
  };
99
- leafPreimage: {
100
- nullifier: string;
101
- nextNullifier: string;
102
- nextIndex: string | number | bigint;
103
- };
104
120
  }>;
105
121
  static random(): NullifierMembershipWitness;
106
122
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nullifier_membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/nullifier_membership_witness.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;GAKG;AACH,qBAAa,0BAA0B;IAEnC;;OAEG;aACa,KAAK,EAAE,MAAM;IAC7B;;OAEG;aACa,YAAY,EAAE,qBAAqB;IACnD;;OAEG;aACa,WAAW,EAAE,WAAW,CAAC,OAAO,qBAAqB,CAAC;;IAXtE;;OAEG;IACa,KAAK,EAAE,MAAM;IAC7B;;OAEG;IACa,YAAY,EAAE,qBAAqB;IACnD;;OAEG;IACa,WAAW,EAAE,WAAW,CAAC,OAAO,qBAAqB,CAAC;IAGxE,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAUhB;IAED,MAAM,CAAC,MAAM;IAQb;;;OAGG;IACI,QAAQ,IAAI,EAAE,EAAE;IAIvB;;OAEG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE;CAQrD"}
1
+ {"version":3,"file":"nullifier_membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/nullifier_membership_witness.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;;;;GAKG;AACH,qBAAa,0BAA0B;IAEnC;;OAEG;aACa,KAAK,EAAE,MAAM;IAC7B;;OAEG;aACa,YAAY,EAAE,qBAAqB;IACnD;;OAEG;aACa,WAAW,EAAE,WAAW,CAAC,OAAO,qBAAqB,CAAC;;IAXtE;;OAEG;IACa,KAAK,EAAE,MAAM;IAC7B;;OAEG;IACa,YAAY,EAAE,qBAAqB;IACnD;;OAEG;IACa,WAAW,EAAE,WAAW,CAAC,OAAO,qBAAqB,CAAC;IAGxE,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAUhB;IAED,MAAM,CAAC,MAAM;IAQb;;;OAGG;IACI,QAAQ,IAAI,EAAE,EAAE;IAIvB;;OAEG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE;CAQrD"}
@@ -62,7 +62,6 @@ export declare class ProtocolContractLeafPreimage implements IndexedTreeLeafPrei
62
62
  static random(): ProtocolContractLeafPreimage;
63
63
  static empty(): ProtocolContractLeafPreimage;
64
64
  static fromBuffer(buffer: Buffer | BufferReader): ProtocolContractLeafPreimage;
65
- static fromLeaf(leaf: ProtocolContractLeaf, nextKey: bigint, nextIndex: bigint): ProtocolContractLeafPreimage;
66
65
  }
67
66
  /**
68
67
  * An address to be inserted or checked in the protocol contract tree.
@@ -1 +1 @@
1
- {"version":3,"file":"protocol_contract_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/protocol_contract_leaf.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,uBAAuB;IAExE;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,WAAW,EAAE,EAAE;IACtB;;OAEG;IACI,SAAS,EAAE,MAAM;;IAXxB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,WAAW,EAAE,EAAE;IACtB;;OAEG;IACI,SAAS,EAAE,MAAM;IAG1B,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAUhB;IAED,MAAM,IAAI,MAAM;IAIhB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,MAAM;IAItB,MAAM,IAAI,oBAAoB;IAI9B,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM,EAAE;IAKxB,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,MAAM;IAQb,MAAM,CAAC,KAAK,IAAI,4BAA4B;IAI5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,4BAA4B;IAS9E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,4BAA4B;CAG9G;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAExD;;OAEG;IACI,OAAO,EAAE,EAAE;;IAHlB;;OAEG;IACI,OAAO,EAAE,EAAE;IAGpB,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,OAAO;IAIlB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,GAAG,oBAAoB;IAI9D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;IAIpD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;CAGrD"}
1
+ {"version":3,"file":"protocol_contract_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/protocol_contract_leaf.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAExF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,uBAAuB;IAExE;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,WAAW,EAAE,EAAE;IACtB;;OAEG;IACI,SAAS,EAAE,MAAM;;IAXxB;;OAEG;IACI,OAAO,EAAE,EAAE;IAClB;;OAEG;IACI,WAAW,EAAE,EAAE;IACtB;;OAEG;IACI,SAAS,EAAE,MAAM;IAG1B,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAUhB;IAED,MAAM,IAAI,MAAM;IAIhB,UAAU,IAAI,MAAM;IAIpB,YAAY,IAAI,MAAM;IAItB,MAAM,IAAI,oBAAoB;IAI9B,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM,EAAE;IAKxB,QAAQ,IAAI,EAAE,EAAE;IAIhB,MAAM,CAAC,MAAM;IAQb,MAAM,CAAC,KAAK,IAAI,4BAA4B;IAI5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,4BAA4B;CAQ/E;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAExD;;OAEG;IACI,OAAO,EAAE,EAAE;;IAHlB;;OAEG;IACI,OAAO,EAAE,EAAE;IAGpB,MAAM,IAAI,MAAM;IAIhB,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,OAAO;IAIlB,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,GAAG,oBAAoB;IAI9D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;IAIpD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB;CAGrD"}
@@ -69,9 +69,6 @@ import { z } from 'zod';
69
69
  const reader = BufferReader.asReader(buffer);
70
70
  return new ProtocolContractLeafPreimage(reader.readObject(Fr), reader.readObject(Fr), toBigIntBE(reader.readBytes(32)));
71
71
  }
72
- static fromLeaf(leaf, nextKey, nextIndex) {
73
- return new ProtocolContractLeafPreimage(leaf.address, new Fr(nextKey), nextIndex);
74
- }
75
72
  }
76
73
  /**
77
74
  * An address to be inserted or checked in the protocol contract tree.