@aztec/foundation 0.0.1-commit.d431d1c → 0.0.1-commit.dbf9cec
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/array/sorted_array.d.ts +6 -1
- package/dest/array/sorted_array.d.ts.map +1 -1
- package/dest/array/sorted_array.js +18 -15
- package/dest/collection/array.d.ts +12 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +51 -0
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +2 -0
- package/dest/crypto/poseidon/index.d.ts +1 -2
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +13 -22
- package/dest/crypto/random/randomness_singleton.d.ts +4 -3
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.js +4 -4
- package/dest/crypto/sync/poseidon/index.d.ts +1 -2
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +0 -8
- package/dest/curves/bn254/field.d.ts +2 -1
- package/dest/curves/bn254/field.d.ts.map +1 -1
- package/dest/curves/bn254/field.js +5 -2
- package/dest/jest/setup.js +4 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +1 -1
- package/dest/json-rpc/client/undici.d.ts +1 -1
- package/dest/json-rpc/client/undici.d.ts.map +1 -1
- package/dest/json-rpc/client/undici.js +21 -4
- package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
- package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
- package/dest/json-rpc/server/api_key_auth.js +57 -0
- package/dest/json-rpc/server/index.d.ts +2 -1
- package/dest/json-rpc/server/index.d.ts.map +1 -1
- package/dest/json-rpc/server/index.js +1 -0
- package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
- package/dest/log/bigint-utils.d.ts +5 -0
- package/dest/log/bigint-utils.d.ts.map +1 -0
- package/dest/log/bigint-utils.js +18 -0
- package/dest/log/gcloud-logger-config.d.ts +1 -1
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.js +3 -0
- package/dest/log/libp2p_logger.d.ts +5 -2
- package/dest/log/libp2p_logger.d.ts.map +1 -1
- package/dest/log/libp2p_logger.js +14 -4
- package/dest/log/log-filters.d.ts +17 -4
- package/dest/log/log-filters.d.ts.map +1 -1
- package/dest/log/log-filters.js +26 -12
- package/dest/log/pino-logger-server.d.ts +9 -0
- package/dest/log/pino-logger-server.d.ts.map +1 -0
- package/dest/log/pino-logger-server.js +18 -0
- package/dest/log/pino-logger.d.ts +37 -8
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +121 -28
- package/dest/queue/base_memory_queue.d.ts +2 -2
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/semaphore.d.ts +5 -1
- package/dest/queue/semaphore.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.d.ts +8 -1
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +13 -0
- package/dest/serialize/serialize.d.ts +19 -1
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +31 -0
- package/dest/timer/date.d.ts +25 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +33 -0
- package/dest/transport/transport_client.js +2 -2
- package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
- package/dest/trees/balanced_merkle_tree_root.js +2 -3
- package/dest/trees/hasher.d.ts +1 -2
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/hasher.js +0 -5
- package/dest/trees/membership_witness.d.ts +5 -1
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +9 -0
- package/dest/trees/merkle_tree_calculator.d.ts +1 -1
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +2 -2
- package/dest/trees/sibling_path.d.ts +1 -1
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +2 -2
- package/dest/types/index.d.ts +3 -1
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +3 -0
- package/package.json +23 -2
- package/src/array/sorted_array.ts +22 -17
- package/src/collection/array.ts +52 -0
- package/src/config/env_var.ts +41 -3
- package/src/config/network_name.ts +4 -1
- package/src/crypto/poseidon/index.ts +13 -23
- package/src/crypto/random/randomness_singleton.ts +9 -5
- package/src/crypto/sync/poseidon/index.ts +0 -9
- package/src/curves/bn254/field.ts +6 -2
- package/src/jest/setup.mjs +4 -1
- package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
- package/src/json-rpc/client/undici.ts +21 -3
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
- package/src/log/bigint-utils.ts +22 -0
- package/src/log/gcloud-logger-config.ts +5 -0
- package/src/log/libp2p_logger.ts +12 -5
- package/src/log/log-filters.ts +29 -11
- package/src/log/pino-logger-server.ts +25 -0
- package/src/log/pino-logger.ts +142 -38
- package/src/queue/base_memory_queue.ts +1 -1
- package/src/queue/semaphore.ts +5 -0
- package/src/serialize/buffer_reader.ts +15 -0
- package/src/serialize/serialize.ts +32 -0
- package/src/timer/date.ts +48 -0
- package/src/transport/transport_client.ts +2 -2
- package/src/trees/balanced_merkle_tree_root.ts +2 -5
- package/src/trees/hasher.ts +0 -4
- package/src/trees/membership_witness.ts +8 -0
- package/src/trees/merkle_tree_calculator.ts +2 -2
- package/src/trees/sibling_path.ts +2 -2
- package/src/types/index.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/membership_witness.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAM3C;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAZlC;IACE;;OAEG;IACH,QAAQ,EAAE,CAAC;IACX;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAGjC;IAED,QAAQ,4BAEP;IAED,MAAM,4BAEL;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,sHAEzC;IAED;;;;OAIG;IACH,OAAc,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,wBAQjD;IAED;;;;;OAKG;IACH,OAAc,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKvF;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAM/G;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKhG;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAAE,CASlH;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAE7G;CACF"}
|
|
1
|
+
{"version":3,"file":"membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/membership_witness.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAM3C;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAZlC;IACE;;OAEG;IACH,QAAQ,EAAE,CAAC;IACX;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAGjC;IAED,QAAQ,4BAEP;IAED,MAAM,4BAEL;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED;;OAEG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAGnD;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,sHAEzC;IAED;;;;OAIG;IACH,OAAc,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,wBAQjD;IAED;;;;;OAKG;IACH,OAAc,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKvF;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAM/G;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKhG;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAAE,CASlH;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAE7G;CACF"}
|
|
@@ -31,6 +31,15 @@ import { BufferReader, serializeToBuffer } from '../serialize/index.js';
|
|
|
31
31
|
...this.siblingPath
|
|
32
32
|
];
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns a representation of the membership witness as expected by intrinsic Noir deserialization.
|
|
36
|
+
*/ toNoirRepresentation() {
|
|
37
|
+
// TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
|
|
38
|
+
return [
|
|
39
|
+
new Fr(this.leafIndex).toString(),
|
|
40
|
+
this.siblingPath.map((fr)=>fr.toString())
|
|
41
|
+
];
|
|
42
|
+
}
|
|
34
43
|
static schemaFor(size) {
|
|
35
44
|
return schemas.Buffer.transform((b)=>MembershipWitness.fromBuffer(b, size));
|
|
36
45
|
}
|
|
@@ -11,4 +11,4 @@ export declare class MerkleTreeCalculator {
|
|
|
11
11
|
computeTree(leaves?: Buffer[]): Promise<MerkleTree>;
|
|
12
12
|
computeTreeRoot(leaves?: Buffer[]): Promise<Buffer>;
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfY2FsY3VsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL21lcmtsZV90cmVlX2NhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gscUJBQWEsb0JBQW9CO0lBRTdCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLE1BQU07SUFIaEIsT0FBTyxlQU1OO0lBRUQsT0FBYSxNQUFNLENBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxHQUFFLE1BQXlCLEVBQ25DLE1BQU0sa0dBQ2tFLGlDQU96RTtJQUVLLFdBQVcsQ0FBQyxNQUFNLEdBQUUsTUFBTSxFQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQW9CNUQ7SUFFSyxlQUFlLENBQUMsTUFBTSxHQUFFLE1BQU0sRUFBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FrQjVEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_calculator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAHhB,OAAO,eAMN;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAyB,EACnC,MAAM,
|
|
1
|
+
{"version":3,"file":"merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_calculator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAHhB,OAAO,eAMN;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAyB,EACnC,MAAM,kGACkE,iCAOzE;IAEK,WAAW,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB5D;IAEK,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5D;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
2
2
|
import { MerkleTree } from './merkle_tree.js';
|
|
3
3
|
/**
|
|
4
4
|
* Merkle tree calculator.
|
|
@@ -12,7 +12,7 @@ import { MerkleTree } from './merkle_tree.js';
|
|
|
12
12
|
this.hasher = hasher;
|
|
13
13
|
this.hasher = hasher;
|
|
14
14
|
}
|
|
15
|
-
static async create(height, zeroLeaf = Buffer.alloc(32), hasher = async (left, right)=>(await
|
|
15
|
+
static async create(height, zeroLeaf = Buffer.alloc(32), hasher = async (left, right)=>(await poseidon2Hash([
|
|
16
16
|
left,
|
|
17
17
|
right
|
|
18
18
|
])).toBuffer()) {
|
|
@@ -94,4 +94,4 @@ export declare class SiblingPath<N extends number> {
|
|
|
94
94
|
}
|
|
95
95
|
/** Computes the expected root of a merkle tree given a leaf and its sibling path. */
|
|
96
96
|
export declare function computeRootFromSiblingPath(leaf: Buffer, siblingPath: Buffer[], index: number, hasher?: (left: Buffer<ArrayBufferLike>, right: Buffer<ArrayBufferLike>) => Promise<Buffer<ArrayBufferLike>>): Promise<Buffer<ArrayBufferLike>>;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2libGluZ19wYXRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvc2libGluZ19wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQ0wsS0FBSyxLQUFLLEVBSVgsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUM7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNO0lBU3JDLCtEQUErRDtJQUN4RCxRQUFRLEVBQUUsQ0FBQztJQVRwQixPQUFPLENBQUMsSUFBSSxDQUFtQjtJQUUvQjs7OztPQUlHO0lBQ0g7SUFDRSwrREFBK0Q7SUFDeEQsUUFBUSxFQUFFLENBQUM7SUFDbEIsNkJBQTZCO0lBQzdCLElBQUksRUFBRSxNQUFNLEVBQUUsRUFHZjtJQUVELE1BQU0sS0FBSyxNQUFNLHNIQUVoQjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQywrSkFLekM7SUFFRCxNQUFNLDRCQUVMO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBYyxJQUFJLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBUWpHO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLGtCQUd4QztJQUVEOzs7T0FHRztJQUNJLFFBQVEsSUFBSSxNQUFNLENBRXhCO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUUvQjtJQUVEOzs7T0FHRztJQUNJLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFdEI7SUFFRDs7O09BR0c7SUFDSSxPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FHN0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FHM0U7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O01BUTNEO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYyxVQUFVLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FFdkU7SUFFRDs7OztPQUlHO0lBQ0kscUJBQXFCLENBQUMsYUFBYSxTQUFTLE1BQU0sRUFBRSx3QkFBd0IsU0FBUyxNQUFNLEVBQ2hHLGFBQWEsRUFBRSxhQUFhLEdBQzNCLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUt2QztDQUNGO0FBRUQscUZBQXFGO0FBQ3JGLHdCQUFzQiwwQkFBMEIsQ0FDOUMsSUFBSSxFQUFFLE1BQU0sRUFDWixXQUFXLEVBQUUsTUFBTSxFQUFFLEVBQ3JCLEtBQUssRUFBRSxNQUFNLEVBQ2IsTUFBTSxzR0FBeUYsb0NBUWhHIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sibling_path.d.ts","sourceRoot":"","sources":["../../src/trees/sibling_path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,KAAK,KAAK,EAIX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM;IASrC,+DAA+D;IACxD,QAAQ,EAAE,CAAC;IATpB,OAAO,CAAC,IAAI,CAAmB;IAE/B;;;;OAIG;IACH;IACE,+DAA+D;IACxD,QAAQ,EAAE,CAAC;IAClB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,EAAE,EAGf;IAED,MAAM,KAAK,MAAM,sHAEhB;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,+JAKzC;IAED,MAAM,4BAEL;IAED;;;;;;OAMG;IACH,OAAc,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAQjG;IAED,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,kBAGxC;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE,CAE/B;IAED;;;OAGG;IACI,QAAQ,IAAI,EAAE,EAAE,CAEtB;IAED;;;OAGG;IACI,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAG7B;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAG3E;IAED;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;MAQ3D;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAEvE;IAED;;;;OAIG;IACI,qBAAqB,CAAC,aAAa,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EAChG,aAAa,EAAE,aAAa,GAC3B,WAAW,CAAC,wBAAwB,CAAC,CAKvC;CACF;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,
|
|
1
|
+
{"version":3,"file":"sibling_path.d.ts","sourceRoot":"","sources":["../../src/trees/sibling_path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EACL,KAAK,KAAK,EAIX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM;IASrC,+DAA+D;IACxD,QAAQ,EAAE,CAAC;IATpB,OAAO,CAAC,IAAI,CAAmB;IAE/B;;;;OAIG;IACH;IACE,+DAA+D;IACxD,QAAQ,EAAE,CAAC;IAClB,6BAA6B;IAC7B,IAAI,EAAE,MAAM,EAAE,EAGf;IAED,MAAM,KAAK,MAAM,sHAEhB;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,+JAKzC;IAED,MAAM,4BAEL;IAED;;;;;;OAMG;IACH,OAAc,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAQjG;IAED,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,kBAGxC;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE,CAE/B;IAED;;;OAGG;IACI,QAAQ,IAAI,EAAE,EAAE,CAEtB;IAED;;;OAGG;IACI,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAG7B;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAG3E;IAED;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;MAQ3D;IAED;;;OAGG;IACI,QAAQ,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAEvE;IAED;;;;OAIG;IACI,qBAAqB,CAAC,aAAa,SAAS,MAAM,EAAE,wBAAwB,SAAS,MAAM,EAChG,aAAa,EAAE,aAAa,GAC3B,WAAW,CAAC,wBAAwB,CAAC,CAKvC;CACF;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,sGAAyF,oCAQhG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeTuple } from '../array/array.js';
|
|
2
|
-
import {
|
|
2
|
+
import { poseidon2Hash } from '../crypto/poseidon/index.js';
|
|
3
3
|
import { Fr } from '../curves/bn254/index.js';
|
|
4
4
|
import { schemas } from '../schemas/index.js';
|
|
5
5
|
import { assertLength, deserializeArrayFromVector, serializeArrayOfBufferableToVector } from '../serialize/index.js';
|
|
@@ -131,7 +131,7 @@ import { bufferToHex, hexToBuffer } from '../string/index.js';
|
|
|
131
131
|
return new SiblingPath(subtreePathSize, subtreeData);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
|
-
/** Computes the expected root of a merkle tree given a leaf and its sibling path. */ export async function computeRootFromSiblingPath(leaf, siblingPath, index, hasher = async (left, right)=>(await
|
|
134
|
+
/** Computes the expected root of a merkle tree given a leaf and its sibling path. */ export async function computeRootFromSiblingPath(leaf, siblingPath, index, hasher = async (left, right)=>(await poseidon2Hash([
|
|
135
135
|
left,
|
|
136
136
|
right
|
|
137
137
|
])).toBuffer()) {
|
package/dest/types/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export type Writeable<T> = {
|
|
|
16
16
|
export declare function unfreeze<T>(obj: T): Writeable<T>;
|
|
17
17
|
/** Is defined type guard */
|
|
18
18
|
export declare function isDefined<T>(value: T | undefined): value is T;
|
|
19
|
+
/** Type guard for error classes */
|
|
20
|
+
export declare function isErrorClass<T extends Error>(value: unknown, errorClass: new (...args: any[]) => T): value is T;
|
|
19
21
|
/** Resolves a record-like type. Lifted from viem. */
|
|
20
22
|
export type Prettify<T> = {
|
|
21
23
|
[K in keyof T]: T[K];
|
|
@@ -41,4 +43,4 @@ export interface TypedEventEmitter<TEventMap extends {
|
|
|
41
43
|
removeListener<K extends keyof TEventMap>(event: K, listener: TEventMap[K]): this;
|
|
42
44
|
removeAllListeners<K extends keyof TEventMap>(event: K): this;
|
|
43
45
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQ0FBZ0M7QUFDaEMsTUFBTSxNQUFNLFFBQVEsQ0FBQyxDQUFDLElBQUk7S0FDdkIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzFELENBQUM7QUFFRixrQ0FBa0M7QUFDbEMsTUFBTSxNQUFNLFdBQVcsQ0FBQyxDQUFDLElBQUk7S0FDMUIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzFELENBQUM7QUFFRix1REFBdUQ7QUFDdkQsTUFBTSxNQUFNLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUvRSw2Q0FBNkM7QUFDN0MsTUFBTSxNQUFNLFNBQVMsQ0FBQyxDQUFDLElBQUk7SUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FBRSxDQUFDO0FBRTlELGdEQUFnRDtBQUNoRCx3QkFBZ0IsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FFaEQ7QUFFRCw0QkFBNEI7QUFDNUIsd0JBQWdCLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxTQUFTLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FFN0Q7QUFFRCxtQ0FBbUM7QUFDbkMsd0JBQWdCLFlBQVksQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBRS9HO0FBRUQscURBQXFEO0FBQ3JELE1BQU0sTUFBTSxRQUFRLENBQUMsQ0FBQyxJQUFJO0tBQ3ZCLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLEdBQUcsRUFBRSxDQUFDO0FBRVA7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sV0FBVyxpQkFBaUIsQ0FBQyxTQUFTLFNBQVM7S0FBRyxHQUFHLElBQUksTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxJQUFJO0NBQUU7SUFDekcsSUFBSSxDQUFDLENBQUMsU0FBUyxNQUFNLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3hFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUN0RSxHQUFHLENBQUMsQ0FBQyxTQUFTLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdkUsSUFBSSxDQUFDLENBQUMsU0FBUyxNQUFNLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDdEYsY0FBYyxDQUFDLENBQUMsU0FBUyxNQUFNLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2xGLGtCQUFrQixDQUFDLENBQUMsU0FBUyxNQUFNLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUUvRCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,6CAA6C;AAC7C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE9D,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEhD;AAED,4BAA4B;AAC5B,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED,qDAAqD;AACrD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS;KAAG,GAAG,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;CAAE;IACzG,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtE,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvE,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACtF,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClF,kBAAkB,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAE/D"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,6CAA6C;AAC7C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAE9D,gDAAgD;AAChD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEhD;AAED,4BAA4B;AAC5B,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED,mCAAmC;AACnC,wBAAgB,YAAY,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAE/G;AAED,qDAAqD;AACrD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS;KAAG,GAAG,IAAI,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI;CAAE;IACzG,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtE,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACvE,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACtF,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClF,kBAAkB,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAE/D"}
|
package/dest/types/index.js
CHANGED
|
@@ -4,3 +4,6 @@
|
|
|
4
4
|
/** Is defined type guard */ export function isDefined(value) {
|
|
5
5
|
return value !== undefined;
|
|
6
6
|
}
|
|
7
|
+
/** Type guard for error classes */ export function isErrorClass(value, errorClass) {
|
|
8
|
+
return value instanceof errorClass || value instanceof Error && value.name === errorClass.name;
|
|
9
|
+
}
|
package/package.json
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/foundation",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.dbf9cec",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dest/index.js",
|
|
6
6
|
"types": "./dest/index.d.ts",
|
|
7
|
+
"typedocOptions": {
|
|
8
|
+
"entryPoints": [
|
|
9
|
+
"./src/buffer/index.ts",
|
|
10
|
+
"./src/collection/index.ts",
|
|
11
|
+
"./src/config/index.ts",
|
|
12
|
+
"./src/crypto/random/index.ts",
|
|
13
|
+
"./src/error/index.ts",
|
|
14
|
+
"./src/eth-address/index.ts",
|
|
15
|
+
"./src/json-rpc/index.ts",
|
|
16
|
+
"./src/log/index.ts",
|
|
17
|
+
"./src/retry/index.ts",
|
|
18
|
+
"./src/schemas/index.ts",
|
|
19
|
+
"./src/serialize/index.ts",
|
|
20
|
+
"./src/sleep/index.ts",
|
|
21
|
+
"./src/timer/index.ts",
|
|
22
|
+
"./src/types/index.ts"
|
|
23
|
+
],
|
|
24
|
+
"name": "Foundation",
|
|
25
|
+
"tsconfig": "./tsconfig.json"
|
|
26
|
+
},
|
|
7
27
|
"exports": {
|
|
8
28
|
"./eslint": "./eslint.config.js",
|
|
9
29
|
"./eslint.docs": "./eslint.config.docs.js",
|
|
@@ -51,6 +71,7 @@
|
|
|
51
71
|
"./iterable": "./dest/iterable/index.js",
|
|
52
72
|
"./iterator": "./dest/iterator/index.js",
|
|
53
73
|
"./log": "./dest/log/index.js",
|
|
74
|
+
"./log/server": "./dest/log/pino-logger-server.js",
|
|
54
75
|
"./mutex": "./dest/mutex/index.js",
|
|
55
76
|
"./retry": "./dest/retry/index.js",
|
|
56
77
|
"./running-promise": "./dest/running-promise/index.js",
|
|
@@ -123,7 +144,7 @@
|
|
|
123
144
|
"testEnvironment": "../../foundation/src/jest/env.mjs"
|
|
124
145
|
},
|
|
125
146
|
"dependencies": {
|
|
126
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
147
|
+
"@aztec/bb.js": "0.0.1-commit.dbf9cec",
|
|
127
148
|
"@koa/cors": "^5.0.0",
|
|
128
149
|
"@noble/curves": "=1.7.0",
|
|
129
150
|
"@noble/hashes": "^1.6.1",
|
|
@@ -21,34 +21,39 @@ export function dedupeSortedArray<T>(arr: T[], cmp: Cmp<T>): void {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export function insertIntoSortedArray<T>(arr: T[], item: T, cmp: Cmp<T>, allowDuplicates = true): boolean {
|
|
24
|
+
const index = findInsertionIndexInSortedArray(arr, item, cmp);
|
|
25
|
+
|
|
26
|
+
if (!allowDuplicates) {
|
|
27
|
+
// Check element before insertion point (upper bound returns index after equal elements)
|
|
28
|
+
if (index > 0 && cmp(arr[index - 1], item) === 0) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
arr.splice(index, 0, item);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Finds the index where needle would be inserted to maintain sorted order.
|
|
39
|
+
* Returns the count of elements less than or equal to needle.
|
|
40
|
+
*/
|
|
41
|
+
export function findInsertionIndexInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): number {
|
|
24
42
|
let start = 0;
|
|
25
|
-
let end =
|
|
43
|
+
let end = values.length;
|
|
26
44
|
|
|
27
45
|
while (start < end) {
|
|
28
46
|
const mid = start + (((end - start) / 2) | 0);
|
|
29
|
-
const comparison = cmp(
|
|
47
|
+
const comparison = cmp(values[mid], needle);
|
|
30
48
|
|
|
31
|
-
if (comparison
|
|
49
|
+
if (comparison <= 0) {
|
|
32
50
|
start = mid + 1;
|
|
33
51
|
} else {
|
|
34
52
|
end = mid;
|
|
35
53
|
}
|
|
36
54
|
}
|
|
37
55
|
|
|
38
|
-
|
|
39
|
-
// Check element at insertion point
|
|
40
|
-
if (start < arr.length && cmp(arr[start], item) === 0) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Check element before insertion point (in case we landed after duplicates)
|
|
45
|
-
if (start > 0 && cmp(arr[start - 1], item) === 0) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
arr.splice(start, 0, item);
|
|
51
|
-
return true;
|
|
56
|
+
return start;
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
export function findIndexInSortedArray<T, N>(values: T[], needle: N, cmp: (a: T, b: N) => number): number {
|
package/src/collection/array.ts
CHANGED
|
@@ -250,6 +250,58 @@ export function chunk<T>(items: T[], chunkSize: number): T[][] {
|
|
|
250
250
|
return chunks;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Splits the given array into chunks of the given size, wrapping around to the beginning
|
|
255
|
+
* if the last chunk would be smaller than the requested size.
|
|
256
|
+
* Returns empty array for empty input. Returns single chunk with all items if chunkSize <= 0.
|
|
257
|
+
*/
|
|
258
|
+
export function chunkWrapAround<T>(items: T[], chunkSize: number): T[][] {
|
|
259
|
+
if (items.length === 0) {
|
|
260
|
+
return [];
|
|
261
|
+
}
|
|
262
|
+
if (chunkSize <= 0 || items.length <= chunkSize) {
|
|
263
|
+
return [items];
|
|
264
|
+
}
|
|
265
|
+
const remainder = items.length % chunkSize;
|
|
266
|
+
if (remainder === 0) {
|
|
267
|
+
return chunk(items, chunkSize);
|
|
268
|
+
}
|
|
269
|
+
const wrapAroundCount = chunkSize - remainder;
|
|
270
|
+
const wrappedItems = [...items, ...items.slice(0, wrapAroundCount)];
|
|
271
|
+
return chunk(wrappedItems, chunkSize);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const UNINITIALIZED = Symbol('uninitialized');
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Splits the given iterable into chunks based on the key returned by the given function.
|
|
278
|
+
* Items must be contiguous to be included in the same chunk.
|
|
279
|
+
*/
|
|
280
|
+
export function chunkBy<T, U>(items: T[], fn: (item: T) => U): T[][] {
|
|
281
|
+
const chunks: T[][] = [];
|
|
282
|
+
let currentChunk: T[] = [];
|
|
283
|
+
let currentKey: U | typeof UNINITIALIZED = UNINITIALIZED;
|
|
284
|
+
|
|
285
|
+
for (const item of items) {
|
|
286
|
+
const key = fn(item);
|
|
287
|
+
if (currentKey === UNINITIALIZED || key !== currentKey) {
|
|
288
|
+
if (currentChunk.length > 0) {
|
|
289
|
+
chunks.push(currentChunk);
|
|
290
|
+
}
|
|
291
|
+
currentChunk = [item];
|
|
292
|
+
currentKey = key;
|
|
293
|
+
} else {
|
|
294
|
+
currentChunk.push(item);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
if (currentChunk.length > 0) {
|
|
299
|
+
chunks.push(currentChunk);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return chunks;
|
|
303
|
+
}
|
|
304
|
+
|
|
253
305
|
/** Partitions the given iterable into two arrays based on the predicate. */
|
|
254
306
|
export function partition<T>(items: T[], predicate: (item: T) => boolean): [T[], T[]] {
|
|
255
307
|
const pass: T[] = [];
|
package/src/config/env_var.ts
CHANGED
|
@@ -12,6 +12,9 @@ export type EnvVar =
|
|
|
12
12
|
| 'ARCHIVER_VIEM_POLLING_INTERVAL_MS'
|
|
13
13
|
| 'ARCHIVER_BATCH_SIZE'
|
|
14
14
|
| 'AZTEC_ADMIN_PORT'
|
|
15
|
+
| 'AZTEC_ADMIN_API_KEY_HASH'
|
|
16
|
+
| 'AZTEC_DISABLE_ADMIN_API_KEY'
|
|
17
|
+
| 'AZTEC_RESET_ADMIN_API_KEY'
|
|
15
18
|
| 'AZTEC_NODE_ADMIN_URL'
|
|
16
19
|
| 'AZTEC_NODE_URL'
|
|
17
20
|
| 'AZTEC_PORT'
|
|
@@ -47,7 +50,10 @@ export type EnvVar =
|
|
|
47
50
|
| 'BOT_TX_MINED_WAIT_SECONDS'
|
|
48
51
|
| 'BOT_MAX_CONSECUTIVE_ERRORS'
|
|
49
52
|
| 'BOT_STOP_WHEN_UNHEALTHY'
|
|
50
|
-
| '
|
|
53
|
+
| 'BOT_MODE'
|
|
54
|
+
| 'BOT_L2_TO_L1_MESSAGES_PER_TX'
|
|
55
|
+
| 'BOT_L1_TO_L2_SEED_COUNT'
|
|
56
|
+
| 'BOT_L1_TO_L2_SEED_INTERVAL'
|
|
51
57
|
| 'COINBASE'
|
|
52
58
|
| 'CRS_PATH'
|
|
53
59
|
| 'DATA_DIRECTORY'
|
|
@@ -64,6 +70,7 @@ export type EnvVar =
|
|
|
64
70
|
| 'PUBLIC_DATA_TREE_MAP_SIZE_KB'
|
|
65
71
|
| 'DEBUG'
|
|
66
72
|
| 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
|
|
73
|
+
| 'ENABLE_PROVER_NODE'
|
|
67
74
|
| 'ETHEREUM_HOSTS'
|
|
68
75
|
| 'ETHEREUM_DEBUG_HOSTS'
|
|
69
76
|
| 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
|
|
@@ -75,8 +82,10 @@ export type EnvVar =
|
|
|
75
82
|
| 'L1_CONSENSUS_HOST_URLS'
|
|
76
83
|
| 'L1_CONSENSUS_HOST_API_KEYS'
|
|
77
84
|
| 'L1_CONSENSUS_HOST_API_KEY_HEADERS'
|
|
85
|
+
| 'L1_TX_FAILED_STORE'
|
|
78
86
|
| 'LOG_JSON'
|
|
79
87
|
| 'LOG_MULTILINE'
|
|
88
|
+
| 'LOG_NO_COLOR_PER_ACTOR'
|
|
80
89
|
| 'LOG_LEVEL'
|
|
81
90
|
| 'MNEMONIC'
|
|
82
91
|
| 'NETWORK'
|
|
@@ -94,7 +103,12 @@ export type EnvVar =
|
|
|
94
103
|
| 'PUBLIC_OTEL_INCLUDE_METRICS'
|
|
95
104
|
| 'PUBLIC_OTEL_COLLECT_FROM'
|
|
96
105
|
| 'PUBLIC_OTEL_OPT_OUT'
|
|
106
|
+
| 'P2P_BATCH_TX_REQUESTER_SMART_PARALLEL_WORKER_COUNT'
|
|
107
|
+
| 'P2P_BATCH_TX_REQUESTER_DUMB_PARALLEL_WORKER_COUNT'
|
|
108
|
+
| 'P2P_BATCH_TX_REQUESTER_TX_BATCH_SIZE'
|
|
109
|
+
| 'P2P_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD'
|
|
97
110
|
| 'P2P_BLOCK_CHECK_INTERVAL_MS'
|
|
111
|
+
| 'P2P_SLOT_CHECK_INTERVAL_MS'
|
|
98
112
|
| 'P2P_BLOCK_REQUEST_BATCH_SIZE'
|
|
99
113
|
| 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK'
|
|
100
114
|
| 'P2P_BOOTSTRAP_NODES_AS_FULL_PEERS'
|
|
@@ -135,9 +149,9 @@ export type EnvVar =
|
|
|
135
149
|
| 'P2P_PREFERRED_PEERS'
|
|
136
150
|
| 'P2P_MAX_PENDING_TX_COUNT'
|
|
137
151
|
| 'P2P_SEEN_MSG_CACHE_SIZE'
|
|
138
|
-
| 'P2P_DROP_TX'
|
|
139
152
|
| 'P2P_DROP_TX_CHANCE'
|
|
140
153
|
| 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
|
|
154
|
+
| 'P2P_MIN_TX_POOL_AGE_MS'
|
|
141
155
|
| 'DEBUG_P2P_INSTRUMENT_MESSAGES'
|
|
142
156
|
| 'PEER_ID_PRIVATE_KEY'
|
|
143
157
|
| 'PEER_ID_PRIVATE_KEY_PATH'
|
|
@@ -151,7 +165,10 @@ export type EnvVar =
|
|
|
151
165
|
| 'PROVER_BROKER_BATCH_INTERVAL_MS'
|
|
152
166
|
| 'PROVER_BROKER_BATCH_SIZE'
|
|
153
167
|
| 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
|
|
168
|
+
| 'PROVER_BROKER_DEBUG_REPLAY_ENABLED'
|
|
169
|
+
| 'PROVER_CANCEL_JOBS_ON_STOP'
|
|
154
170
|
| 'PROVER_COORDINATION_NODE_URLS'
|
|
171
|
+
| 'PROVER_PROOF_STORE'
|
|
155
172
|
| 'PROVER_FAILED_PROOF_STORE'
|
|
156
173
|
| 'PROVER_NODE_FAILED_EPOCH_STORE'
|
|
157
174
|
| 'PROVER_NODE_DISABLE_PROOF_PUBLISH'
|
|
@@ -175,6 +192,7 @@ export type EnvVar =
|
|
|
175
192
|
| 'PROVER_TEST_VERIFICATION_DELAY_MS'
|
|
176
193
|
| 'PXE_L2_BLOCK_BATCH_SIZE'
|
|
177
194
|
| 'PXE_PROVER_ENABLED'
|
|
195
|
+
| 'PXE_SYNC_CHAIN_TIP'
|
|
178
196
|
| 'RPC_MAX_BATCH_SIZE'
|
|
179
197
|
| 'RPC_MAX_BODY_SIZE'
|
|
180
198
|
| 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT'
|
|
@@ -198,9 +216,11 @@ export type EnvVar =
|
|
|
198
216
|
| 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
|
|
199
217
|
| 'SEQ_ATTESTATION_PROPAGATION_TIME'
|
|
200
218
|
| 'SEQ_BLOCK_DURATION_MS'
|
|
219
|
+
| 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT'
|
|
201
220
|
| 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
|
|
202
221
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
|
|
203
222
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
|
|
223
|
+
| 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT'
|
|
204
224
|
| 'SLASH_MIN_PENALTY_PERCENTAGE'
|
|
205
225
|
| 'SLASH_MAX_PENALTY_PERCENTAGE'
|
|
206
226
|
| 'SLASH_VALIDATORS_ALWAYS'
|
|
@@ -211,6 +231,8 @@ export type EnvVar =
|
|
|
211
231
|
| 'SLASH_INACTIVITY_TARGET_PERCENTAGE'
|
|
212
232
|
| 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD'
|
|
213
233
|
| 'SLASH_INVALID_BLOCK_PENALTY'
|
|
234
|
+
| 'SLASH_DUPLICATE_PROPOSAL_PENALTY'
|
|
235
|
+
| 'SLASH_DUPLICATE_ATTESTATION_PENALTY'
|
|
214
236
|
| 'SLASH_OVERRIDE_PAYLOAD'
|
|
215
237
|
| 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY'
|
|
216
238
|
| 'SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY'
|
|
@@ -235,6 +257,20 @@ export type EnvVar =
|
|
|
235
257
|
| 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE'
|
|
236
258
|
| 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE'
|
|
237
259
|
| 'TX_COLLECTION_NODE_RPC_URLS'
|
|
260
|
+
| 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE'
|
|
261
|
+
| 'TX_COLLECTION_FILE_STORE_URLS'
|
|
262
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_DELAY_MS'
|
|
263
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS'
|
|
264
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT'
|
|
265
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_WORKER_COUNT'
|
|
266
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS'
|
|
267
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_BASE_MS'
|
|
268
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS'
|
|
269
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_MAX_MS'
|
|
270
|
+
| 'TX_FILE_STORE_URL'
|
|
271
|
+
| 'TX_FILE_STORE_UPLOAD_CONCURRENCY'
|
|
272
|
+
| 'TX_FILE_STORE_MAX_QUEUE_SIZE'
|
|
273
|
+
| 'TX_FILE_STORE_ENABLED'
|
|
238
274
|
| 'TX_PUBLIC_SETUP_ALLOWLIST'
|
|
239
275
|
| 'TXE_PORT'
|
|
240
276
|
| 'TRANSACTIONS_DISABLED'
|
|
@@ -246,10 +282,10 @@ export type EnvVar =
|
|
|
246
282
|
| 'VALIDATOR_ADDRESSES'
|
|
247
283
|
| 'ROLLUP_VERSION'
|
|
248
284
|
| 'WS_BLOCK_CHECK_INTERVAL_MS'
|
|
249
|
-
| 'WS_PROVEN_BLOCKS_ONLY'
|
|
250
285
|
| 'WS_BLOCK_REQUEST_BATCH_SIZE'
|
|
251
286
|
| 'L1_READER_VIEM_POLLING_INTERVAL_MS'
|
|
252
287
|
| 'WS_DATA_DIRECTORY'
|
|
288
|
+
| 'WS_NUM_HISTORIC_CHECKPOINTS'
|
|
253
289
|
| 'WS_NUM_HISTORIC_BLOCKS'
|
|
254
290
|
| 'ETHEREUM_SLOT_DURATION'
|
|
255
291
|
| 'AZTEC_SLOT_DURATION'
|
|
@@ -264,6 +300,7 @@ export type EnvVar =
|
|
|
264
300
|
| 'AZTEC_LOCAL_EJECTION_THRESHOLD'
|
|
265
301
|
| 'AZTEC_MANA_TARGET'
|
|
266
302
|
| 'AZTEC_PROVING_COST_PER_MANA'
|
|
303
|
+
| 'AZTEC_INITIAL_ETH_PER_FEE_ASSET'
|
|
267
304
|
| 'AZTEC_SLASHING_QUORUM'
|
|
268
305
|
| 'AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS'
|
|
269
306
|
| 'AZTEC_SLASHING_LIFETIME_IN_ROUNDS'
|
|
@@ -318,6 +355,7 @@ export type EnvVar =
|
|
|
318
355
|
| 'VALIDATOR_HA_POLLING_INTERVAL_MS'
|
|
319
356
|
| 'VALIDATOR_HA_SIGNING_TIMEOUT_MS'
|
|
320
357
|
| 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS'
|
|
358
|
+
| 'VALIDATOR_HA_OLD_DUTIES_MAX_AGE_H'
|
|
321
359
|
| 'VALIDATOR_HA_DATABASE_URL'
|
|
322
360
|
| 'VALIDATOR_HA_RUN_MIGRATIONS'
|
|
323
361
|
| 'VALIDATOR_HA_POOL_MAX'
|
|
@@ -5,7 +5,8 @@ export type NetworkNames =
|
|
|
5
5
|
| 'testnet'
|
|
6
6
|
| 'mainnet'
|
|
7
7
|
| 'next-net'
|
|
8
|
-
| 'devnet'
|
|
8
|
+
| 'devnet'
|
|
9
|
+
| `v${number}-devnet-${number}`;
|
|
9
10
|
|
|
10
11
|
export function getActiveNetworkName(name?: string): NetworkNames {
|
|
11
12
|
const network = name || process.env.NETWORK;
|
|
@@ -23,6 +24,8 @@ export function getActiveNetworkName(name?: string): NetworkNames {
|
|
|
23
24
|
return 'next-net';
|
|
24
25
|
} else if (network === 'devnet') {
|
|
25
26
|
return 'devnet';
|
|
27
|
+
} else if (/^v\d+-devnet-\d+$/.test(network)) {
|
|
28
|
+
return network as `v${number}-devnet-${number}`;
|
|
26
29
|
}
|
|
27
30
|
throw new Error(`Unknown network: ${network}`);
|
|
28
31
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Barretenberg } from '@aztec/bb.js';
|
|
2
2
|
|
|
3
3
|
import { Fr } from '../../curves/bn254/field.js';
|
|
4
4
|
import { type Fieldable, serializeToFields } from '../../serialize/serialize.js';
|
|
@@ -10,9 +10,9 @@ import { type Fieldable, serializeToFields } from '../../serialize/serialize.js'
|
|
|
10
10
|
*/
|
|
11
11
|
export async function poseidon2Hash(input: Fieldable[]): Promise<Fr> {
|
|
12
12
|
const inputFields = serializeToFields(input);
|
|
13
|
-
await
|
|
14
|
-
const api =
|
|
15
|
-
const response = api.poseidon2Hash({
|
|
13
|
+
await Barretenberg.initSingleton();
|
|
14
|
+
const api = Barretenberg.getSingleton();
|
|
15
|
+
const response = await api.poseidon2Hash({
|
|
16
16
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
17
17
|
});
|
|
18
18
|
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
@@ -27,19 +27,9 @@ export async function poseidon2Hash(input: Fieldable[]): Promise<Fr> {
|
|
|
27
27
|
export async function poseidon2HashWithSeparator(input: Fieldable[], separator: number): Promise<Fr> {
|
|
28
28
|
const inputFields = serializeToFields(input);
|
|
29
29
|
inputFields.unshift(new Fr(separator));
|
|
30
|
-
await
|
|
31
|
-
const api =
|
|
32
|
-
const response = api.poseidon2Hash({
|
|
33
|
-
inputs: inputFields.map(i => i.toBuffer()),
|
|
34
|
-
});
|
|
35
|
-
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export async function poseidon2HashAccumulate(input: Fieldable[]): Promise<Fr> {
|
|
39
|
-
const inputFields = serializeToFields(input);
|
|
40
|
-
await BarretenbergSync.initSingleton();
|
|
41
|
-
const api = BarretenbergSync.getSingleton();
|
|
42
|
-
const response = api.poseidon2HashAccumulate({
|
|
30
|
+
await Barretenberg.initSingleton();
|
|
31
|
+
const api = Barretenberg.getSingleton();
|
|
32
|
+
const response = await api.poseidon2Hash({
|
|
43
33
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
44
34
|
});
|
|
45
35
|
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
@@ -54,9 +44,9 @@ export async function poseidon2Permutation(input: Fieldable[]): Promise<Fr[]> {
|
|
|
54
44
|
const inputFields = serializeToFields(input);
|
|
55
45
|
// We'd like this assertion but it's not possible to use it in the browser.
|
|
56
46
|
// assert(input.length === 4, 'Input state must be of size 4');
|
|
57
|
-
await
|
|
58
|
-
const api =
|
|
59
|
-
const response = api.poseidon2Permutation({
|
|
47
|
+
await Barretenberg.initSingleton();
|
|
48
|
+
const api = Barretenberg.getSingleton();
|
|
49
|
+
const response = await api.poseidon2Permutation({
|
|
60
50
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
61
51
|
});
|
|
62
52
|
// We'd like this assertion but it's not possible to use it in the browser.
|
|
@@ -75,9 +65,9 @@ export async function poseidon2HashBytes(input: Buffer): Promise<Fr> {
|
|
|
75
65
|
inputFields.push(Fr.fromBuffer(fieldBytes));
|
|
76
66
|
}
|
|
77
67
|
|
|
78
|
-
await
|
|
79
|
-
const api =
|
|
80
|
-
const response = api.poseidon2Hash({
|
|
68
|
+
await Barretenberg.initSingleton();
|
|
69
|
+
const api = Barretenberg.getSingleton();
|
|
70
|
+
const response = await api.poseidon2Hash({
|
|
81
71
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
82
72
|
});
|
|
83
73
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createLogger } from '../../log/pino-logger.js';
|
|
1
|
+
import { type Logger, type LoggerBindings, createLogger } from '../../log/pino-logger.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A number generator which is used as a source of randomness in the system. If the SEED env variable is set, the
|
|
@@ -12,9 +12,13 @@ export class RandomnessSingleton {
|
|
|
12
12
|
private static instance: RandomnessSingleton;
|
|
13
13
|
|
|
14
14
|
private counter = 0;
|
|
15
|
-
private
|
|
15
|
+
private log: Logger;
|
|
16
16
|
|
|
17
|
-
private constructor(
|
|
17
|
+
private constructor(
|
|
18
|
+
private readonly seed?: number,
|
|
19
|
+
bindings?: LoggerBindings,
|
|
20
|
+
) {
|
|
21
|
+
this.log = createLogger('foundation:randomness_singleton', bindings);
|
|
18
22
|
if (seed !== undefined) {
|
|
19
23
|
this.log.debug(`Using pseudo-randomness with seed: ${seed}`);
|
|
20
24
|
this.counter = seed;
|
|
@@ -23,10 +27,10 @@ export class RandomnessSingleton {
|
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
29
|
|
|
26
|
-
public static getInstance(): RandomnessSingleton {
|
|
30
|
+
public static getInstance(bindings?: LoggerBindings): RandomnessSingleton {
|
|
27
31
|
if (!RandomnessSingleton.instance) {
|
|
28
32
|
const seed = process.env.SEED ? Number(process.env.SEED) : undefined;
|
|
29
|
-
RandomnessSingleton.instance = new RandomnessSingleton(seed);
|
|
33
|
+
RandomnessSingleton.instance = new RandomnessSingleton(seed, bindings);
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
return RandomnessSingleton.instance;
|
|
@@ -34,15 +34,6 @@ export function poseidon2HashWithSeparator(input: Fieldable[], separator: number
|
|
|
34
34
|
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
export function poseidon2HashAccumulate(input: Fieldable[]): Fr {
|
|
38
|
-
const inputFields = serializeToFields(input);
|
|
39
|
-
const api = BarretenbergSync.getSingleton();
|
|
40
|
-
const response = api.poseidon2HashAccumulate({
|
|
41
|
-
inputs: inputFields.map(i => i.toBuffer()),
|
|
42
|
-
});
|
|
43
|
-
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
37
|
/**
|
|
47
38
|
* Runs a Poseidon2 permutation.
|
|
48
39
|
* @param input the input state. Expected to be of size 4.
|
|
@@ -118,14 +118,18 @@ abstract class BaseField {
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
cmp(rhs: BaseField): -1 | 0 | 1 {
|
|
121
|
-
|
|
122
|
-
return this.asBigInt === rhsBigInt ? 0 : this.asBigInt < rhsBigInt ? -1 : 1;
|
|
121
|
+
return BaseField.cmpAsBigInt(this.asBigInt, rhs.asBigInt);
|
|
123
122
|
}
|
|
124
123
|
|
|
125
124
|
static cmp(lhs: BaseField, rhs: BaseField): -1 | 0 | 1 {
|
|
126
125
|
return lhs.cmp(rhs);
|
|
127
126
|
}
|
|
128
127
|
|
|
128
|
+
// Actual bigint comparison. Arguments must have been validated previously.
|
|
129
|
+
static cmpAsBigInt(lhs: bigint, rhs: bigint): -1 | 0 | 1 {
|
|
130
|
+
return lhs === rhs ? 0 : lhs < rhs ? -1 : 1;
|
|
131
|
+
}
|
|
132
|
+
|
|
129
133
|
isZero(): boolean {
|
|
130
134
|
return this.asBigInt === 0n;
|
|
131
135
|
}
|
package/src/jest/setup.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { parseBooleanEnv } from '@aztec/foundation/config';
|
|
1
2
|
import { overwriteLoggingStream, pinoPrettyOpts } from '@aztec/foundation/log';
|
|
2
3
|
|
|
3
4
|
import pretty from 'pino-pretty';
|
|
@@ -6,4 +7,6 @@ import pretty from 'pino-pretty';
|
|
|
6
7
|
// file so we don't mess up with dependencies in non-testing environments,
|
|
7
8
|
// since pino-pretty messes up with browser bundles.
|
|
8
9
|
// See also https://www.npmjs.com/package/pino-pretty?activeTab=readme#user-content-usage-with-jest
|
|
9
|
-
|
|
10
|
+
if (!parseBooleanEnv(process.env.LOG_JSON)) {
|
|
11
|
+
overwriteLoggingStream(pretty(pinoPrettyOpts));
|
|
12
|
+
}
|
|
@@ -24,6 +24,7 @@ export type SafeJsonRpcClientOptions = {
|
|
|
24
24
|
batchWindowMS?: number;
|
|
25
25
|
maxBatchSize?: number;
|
|
26
26
|
maxRequestBodySize?: number;
|
|
27
|
+
extraHeaders?: Record<string, string>;
|
|
27
28
|
onResponse?: (res: {
|
|
28
29
|
response: any;
|
|
29
30
|
headers: { get: (header: string) => string | null | undefined };
|
|
@@ -129,6 +130,7 @@ export function createSafeJsonRpcClient<T extends object>(
|
|
|
129
130
|
const { response, headers } = await fetch(
|
|
130
131
|
host,
|
|
131
132
|
rpcCalls.map(({ request }) => request),
|
|
133
|
+
config.extraHeaders,
|
|
132
134
|
);
|
|
133
135
|
|
|
134
136
|
if (config.onResponse) {
|