@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.
- package/dest/avm/avm.d.ts +4648 -1474
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +182 -109
- package/dest/avm/avm_proving_request.d.ts +1867 -498
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/block/l2_block_downloader/l2_block_stream.d.ts +10 -12
- package/dest/block/l2_block_downloader/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_downloader/l2_block_stream.js +45 -11
- package/dest/config/config.d.ts +2 -2
- package/dest/config/config.d.ts.map +1 -1
- package/dest/config/config.js +4 -5
- package/dest/contract/interfaces/node-info.d.ts +2 -2
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +1 -1
- package/dest/database-version/version_manager.d.ts +4 -2
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +13 -9
- package/dest/epoch-helpers/index.d.ts +2 -0
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +3 -0
- package/dest/file-store/factory.d.ts +7 -0
- package/dest/file-store/factory.d.ts.map +1 -0
- package/dest/file-store/factory.js +46 -0
- package/dest/file-store/gcs.d.ts +22 -0
- package/dest/file-store/gcs.d.ts.map +1 -0
- package/dest/file-store/gcs.js +115 -0
- package/dest/file-store/http.d.ts +15 -0
- package/dest/file-store/http.d.ts.map +1 -0
- package/dest/file-store/http.js +53 -0
- package/dest/file-store/index.d.ts +3 -0
- package/dest/file-store/index.d.ts.map +1 -0
- package/dest/file-store/index.js +2 -0
- package/dest/file-store/interface.d.ts +24 -0
- package/dest/file-store/interface.d.ts.map +1 -0
- package/dest/file-store/interface.js +1 -0
- package/dest/file-store/local.d.ts +16 -0
- package/dest/file-store/local.d.ts.map +1 -0
- package/dest/file-store/local.js +40 -0
- package/dest/interfaces/aztec-node-admin.d.ts +9 -1
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +2 -1
- package/dest/interfaces/aztec-node.d.ts +3 -0
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +2 -0
- package/dest/interfaces/p2p.d.ts +2 -0
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +2 -1
- package/dest/interfaces/prover-client.d.ts +3 -3
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +6 -4
- package/dest/interfaces/prover-node.d.ts +4 -0
- package/dest/interfaces/prover-node.d.ts.map +1 -1
- package/dest/interfaces/prover-node.js +5 -1
- package/dest/interfaces/proving-job.d.ts +1866 -497
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/pxe.d.ts +7 -6
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +1 -1
- package/dest/interfaces/service.d.ts +3 -0
- package/dest/interfaces/service.d.ts.map +1 -1
- package/dest/interfaces/service.js +7 -0
- package/dest/interfaces/world_state.d.ts +13 -15
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/keys/derivation.d.ts +1 -1
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +10 -2
- package/dest/logs/index.d.ts +2 -1
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +2 -1
- package/dest/logs/pending_tagged_log.d.ts +17 -0
- package/dest/logs/pending_tagged_log.d.ts.map +1 -0
- package/dest/logs/pending_tagged_log.js +45 -0
- package/dest/logs/{l1_payload/shared_secret_derivation.d.ts → shared_secret_derivation.d.ts} +4 -3
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -0
- package/dest/logs/{l1_payload/shared_secret_derivation.js → shared_secret_derivation.js} +3 -5
- package/dest/logs/tx_scoped_l2_log.d.ts +6 -1
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +12 -4
- package/dest/note/note.d.ts +45 -4
- package/dest/note/note.d.ts.map +1 -1
- package/dest/note/note.js +51 -4
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/proof.js +33 -7
- package/dest/snapshots/download.d.ts +9 -0
- package/dest/snapshots/download.d.ts.map +1 -0
- package/dest/snapshots/download.js +37 -0
- package/dest/snapshots/index.d.ts +4 -0
- package/dest/snapshots/index.d.ts.map +1 -0
- package/dest/snapshots/index.js +3 -0
- package/dest/snapshots/types.d.ts +97 -0
- package/dest/snapshots/types.d.ts.map +1 -0
- package/dest/snapshots/types.js +27 -0
- package/dest/snapshots/upload.d.ts +5 -0
- package/dest/snapshots/upload.d.ts.map +1 -0
- package/dest/snapshots/upload.js +37 -0
- package/dest/tests/factories.d.ts +21 -7
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +78 -30
- package/dest/tests/mocks.d.ts +2 -1
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +5 -1
- package/dest/trees/merkle_tree_id.d.ts +8 -0
- package/dest/trees/merkle_tree_id.d.ts.map +1 -1
- package/dest/trees/merkle_tree_id.js +10 -0
- package/dest/trees/nullifier_leaf.d.ts +49 -15
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +45 -22
- package/dest/trees/nullifier_membership_witness.d.ts +34 -18
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/protocol_contract_leaf.d.ts +0 -1
- package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
- package/dest/trees/protocol_contract_leaf.js +0 -3
- package/dest/trees/public_data_leaf.d.ts +59 -25
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +41 -30
- package/dest/trees/public_data_witness.d.ts +42 -24
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/trees/public_data_witness.js +6 -6
- package/dest/validators/index.d.ts +3 -0
- package/dest/validators/index.d.ts.map +1 -0
- package/dest/validators/index.js +1 -0
- package/dest/validators/schemas.d.ts +342 -0
- package/dest/validators/schemas.d.ts.map +1 -0
- package/dest/validators/schemas.js +40 -0
- package/dest/validators/types.d.ts +39 -0
- package/dest/validators/types.d.ts.map +1 -0
- package/dest/validators/types.js +1 -0
- package/dest/versioning/versioning.d.ts +1 -1
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +6 -6
- package/package.json +11 -8
- package/src/avm/avm.ts +183 -104
- package/src/block/l2_block_downloader/l2_block_stream.ts +64 -29
- package/src/config/config.ts +6 -6
- package/src/contract/interfaces/node-info.ts +3 -3
- package/src/database-version/version_manager.ts +12 -8
- package/src/epoch-helpers/index.ts +8 -0
- package/src/file-store/factory.ts +61 -0
- package/src/file-store/gcs.ts +121 -0
- package/src/file-store/http.ts +58 -0
- package/src/file-store/index.ts +2 -0
- package/src/file-store/interface.ts +19 -0
- package/src/file-store/local.ts +46 -0
- package/src/interfaces/aztec-node-admin.ts +11 -1
- package/src/interfaces/aztec-node.ts +7 -0
- package/src/interfaces/p2p.ts +4 -0
- package/src/interfaces/prover-client.ts +9 -7
- package/src/interfaces/prover-node.ts +10 -0
- package/src/interfaces/pxe.ts +14 -7
- package/src/interfaces/service.ts +13 -0
- package/src/interfaces/world_state.ts +17 -15
- package/src/keys/derivation.ts +12 -6
- package/src/logs/index.ts +2 -1
- package/src/logs/pending_tagged_log.ts +43 -0
- package/src/logs/{l1_payload/shared_secret_derivation.ts → shared_secret_derivation.ts} +4 -11
- package/src/logs/tx_scoped_l2_log.ts +13 -4
- package/src/note/note.ts +61 -5
- package/src/proofs/proof.ts +39 -5
- package/src/snapshots/download.ts +60 -0
- package/src/snapshots/index.ts +3 -0
- package/src/snapshots/types.ts +58 -0
- package/src/snapshots/upload.ts +55 -0
- package/src/tests/factories.ts +137 -53
- package/src/tests/mocks.ts +7 -0
- package/src/trees/merkle_tree_id.ts +12 -0
- package/src/trees/nullifier_leaf.ts +48 -21
- package/src/trees/protocol_contract_leaf.ts +0 -4
- package/src/trees/public_data_leaf.ts +40 -29
- package/src/trees/public_data_witness.ts +6 -6
- package/src/validators/index.ts +3 -0
- package/src/validators/schemas.ts +53 -0
- package/src/validators/types.ts +37 -0
- package/src/versioning/versioning.ts +8 -14
- package/dest/event/event.d.ts +0 -24
- package/dest/event/event.d.ts.map +0 -1
- package/dest/event/event.js +0 -13
- package/dest/event/event_metadata.d.ts +0 -38
- package/dest/event/event_metadata.d.ts.map +0 -1
- package/dest/event/event_metadata.js +0 -45
- package/dest/event/index.d.ts +0 -4
- package/dest/event/index.d.ts.map +0 -1
- package/dest/event/index.js +0 -3
- package/dest/event/l1_event_payload.d.ts +0 -52
- package/dest/event/l1_event_payload.d.ts.map +0 -1
- package/dest/event/l1_event_payload.js +0 -64
- package/dest/logs/l1_payload/encrypted_log_payload.d.ts +0 -50
- package/dest/logs/l1_payload/encrypted_log_payload.d.ts.map +0 -1
- package/dest/logs/l1_payload/encrypted_log_payload.js +0 -140
- package/dest/logs/l1_payload/encryption_util.d.ts +0 -24
- package/dest/logs/l1_payload/encryption_util.d.ts.map +0 -1
- package/dest/logs/l1_payload/encryption_util.js +0 -46
- package/dest/logs/l1_payload/index.d.ts +0 -3
- package/dest/logs/l1_payload/index.d.ts.map +0 -1
- package/dest/logs/l1_payload/index.js +0 -2
- package/dest/logs/l1_payload/payload.d.ts +0 -60
- package/dest/logs/l1_payload/payload.d.ts.map +0 -1
- package/dest/logs/l1_payload/payload.js +0 -61
- package/dest/logs/l1_payload/shared_secret_derivation.d.ts.map +0 -1
- package/src/event/event.ts +0 -16
- package/src/event/event_metadata.ts +0 -56
- package/src/event/index.ts +0 -3
- package/src/event/l1_event_payload.ts +0 -87
- package/src/logs/l1_payload/encrypted_log_payload.ts +0 -202
- package/src/logs/l1_payload/encryption_util.ts +0 -54
- package/src/logs/l1_payload/index.ts +0 -2
- package/src/logs/l1_payload/payload.ts +0 -73
package/dest/tests/factories.js
CHANGED
|
@@ -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,
|
|
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 {
|
|
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(
|
|
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)=>
|
|
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
|
|
761
|
-
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
return new
|
|
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
|
|
777
|
-
|
|
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
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
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.
|
|
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.
|
package/dest/tests/mocks.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dest/tests/mocks.js
CHANGED
|
@@ -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
|
-
|
|
15
|
+
leaf: NullifierLeaf;
|
|
16
16
|
/**
|
|
17
|
-
* Next
|
|
17
|
+
* Next nullifier inside the indexed tree's linked list.
|
|
18
18
|
*/
|
|
19
|
-
|
|
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
|
-
|
|
28
|
+
leaf: NullifierLeaf,
|
|
29
29
|
/**
|
|
30
|
-
* Next
|
|
30
|
+
* Next nullifier inside the indexed tree's linked list.
|
|
31
31
|
*/
|
|
32
|
-
|
|
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
|
-
|
|
39
|
-
|
|
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
|
-
|
|
43
|
-
|
|
50
|
+
leaf: NullifierLeaf;
|
|
51
|
+
nextKey: Fr;
|
|
44
52
|
nextIndex: bigint;
|
|
45
53
|
}, {
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
leaf: {
|
|
55
|
+
nullifier: string;
|
|
56
|
+
};
|
|
57
|
+
nextKey: string;
|
|
48
58
|
nextIndex: string | number | bigint;
|
|
49
59
|
}>, NullifierLeafPreimage, {
|
|
50
|
-
|
|
51
|
-
|
|
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,
|
|
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
|
-
|
|
11
|
-
|
|
10
|
+
leaf;
|
|
11
|
+
nextKey;
|
|
12
12
|
nextIndex;
|
|
13
13
|
constructor(/**
|
|
14
14
|
* Leaf value inside the indexed tree's linked list.
|
|
15
|
-
*/
|
|
16
|
-
* Next
|
|
17
|
-
*/
|
|
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.
|
|
21
|
-
this.
|
|
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
|
-
|
|
27
|
-
|
|
26
|
+
leaf: NullifierLeaf.schema,
|
|
27
|
+
nextKey: schemas.Fr,
|
|
28
28
|
nextIndex: schemas.BigInt
|
|
29
|
-
}).transform(({
|
|
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.
|
|
35
|
+
return this.leaf.getKey();
|
|
33
36
|
}
|
|
34
37
|
getNextKey() {
|
|
35
|
-
return this.
|
|
38
|
+
return this.nextKey.toBigInt();
|
|
36
39
|
}
|
|
37
40
|
getNextIndex() {
|
|
38
41
|
return this.nextIndex;
|
|
39
42
|
}
|
|
40
43
|
asLeaf() {
|
|
41
|
-
return
|
|
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
|
-
|
|
49
|
-
Buffer.from(this.
|
|
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.
|
|
60
|
+
return new NullifierLeafPreimage(this.leaf.clone(), this.nextKey, this.nextIndex);
|
|
58
61
|
}
|
|
59
62
|
static random() {
|
|
60
|
-
return new NullifierLeafPreimage(
|
|
63
|
+
return new NullifierLeafPreimage(NullifierLeaf.random(), Fr.random(), BigInt(Math.floor(Math.random() * 1000)));
|
|
61
64
|
}
|
|
62
65
|
static empty() {
|
|
63
|
-
return new NullifierLeafPreimage(
|
|
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(
|
|
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
|
|
73
|
+
return new NullifierLeafPreimage(leaf, new Fr(nextKey), nextIndex);
|
|
71
74
|
}
|
|
72
75
|
static clone(preimage) {
|
|
73
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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
|
-
|
|
48
|
-
|
|
55
|
+
leaf: import("./nullifier_leaf.js").NullifierLeaf;
|
|
56
|
+
nextKey: Fr;
|
|
49
57
|
nextIndex: bigint;
|
|
50
58
|
}, {
|
|
51
|
-
|
|
52
|
-
|
|
59
|
+
leaf: {
|
|
60
|
+
nullifier: string;
|
|
61
|
+
};
|
|
62
|
+
nextKey: string;
|
|
53
63
|
nextIndex: string | number | bigint;
|
|
54
64
|
}>, NullifierLeafPreimage, {
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
90
|
-
|
|
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
|
|
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;
|
|
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.
|