@aztec/foundation 0.0.1-commit.3100065 → 0.0.1-commit.330febf
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/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/crypto/keys/index.d.ts +3 -2
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +30 -6
- package/dest/fifo/fifo_frame_reader.d.ts +2 -2
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -1
- package/dest/fifo/fifo_frame_reader.js +21 -4
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -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 +3 -2
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +5 -1
- package/dest/log/aws-logger-config.d.ts +8 -0
- package/dest/log/aws-logger-config.d.ts.map +1 -0
- package/dest/log/aws-logger-config.js +55 -0
- package/dest/log/pino-logger.d.ts +1 -1
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +12 -6
- package/dest/serialize/buffer_reader.d.ts +1 -1
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +5 -0
- package/dest/serialize/serialize.d.ts +1 -32
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +0 -21
- package/dest/string/index.d.ts +3 -1
- package/dest/string/index.d.ts.map +1 -1
- package/dest/string/index.js +12 -0
- package/dest/testing/files/index.d.ts +1 -1
- package/dest/testing/files/index.js +2 -2
- package/dest/trees/sibling_path.d.ts +9 -11
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +13 -20
- package/package.json +2 -2
- package/src/config/env_var.ts +8 -0
- package/src/crypto/keys/index.ts +20 -4
- package/src/fifo/fifo_frame_reader.ts +17 -2
- package/src/json-rpc/client/safe_json_rpc_client.ts +3 -2
- package/src/json-rpc/server/safe_json_rpc_server.ts +5 -1
- package/src/log/aws-logger-config.ts +32 -0
- package/src/log/pino-logger.ts +14 -4
- package/src/serialize/buffer_reader.ts +5 -0
- package/src/serialize/serialize.ts +0 -50
- package/src/string/index.ts +14 -0
- package/src/testing/files/index.ts +2 -2
- package/src/trees/sibling_path.ts +13 -24
|
@@ -6,36 +6,6 @@ import { Fr } from '../curves/bn254/field.js';
|
|
|
6
6
|
* @returns The serialized buffers.
|
|
7
7
|
*/
|
|
8
8
|
export declare function serializeArrayOfBufferableToVector(objs: Bufferable[], prefixLength?: number): Buffer;
|
|
9
|
-
/**
|
|
10
|
-
* Helper function for deserializeArrayFromVector.
|
|
11
|
-
*/
|
|
12
|
-
type DeserializeFn<T> = (buf: Buffer, offset: number) => {
|
|
13
|
-
/**
|
|
14
|
-
* The deserialized type.
|
|
15
|
-
*/
|
|
16
|
-
elem: T;
|
|
17
|
-
/**
|
|
18
|
-
* How many bytes to advance by.
|
|
19
|
-
*/
|
|
20
|
-
adv: number;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Deserializes an array from a vector on an element-by-element basis.
|
|
24
|
-
* @param deserialize - A function used to deserialize each element of the vector.
|
|
25
|
-
* @param vector - The vector to deserialize.
|
|
26
|
-
* @param offset - The position in the vector to start deserializing from.
|
|
27
|
-
* @returns Deserialized array and how many bytes we advanced by.
|
|
28
|
-
*/
|
|
29
|
-
export declare function deserializeArrayFromVector<T>(deserialize: DeserializeFn<T>, vector: Buffer, offset?: number): {
|
|
30
|
-
/**
|
|
31
|
-
* The deserialized array.
|
|
32
|
-
*/
|
|
33
|
-
elem: T[];
|
|
34
|
-
/**
|
|
35
|
-
* How many bytes we advanced by.
|
|
36
|
-
*/
|
|
37
|
-
adv: number;
|
|
38
|
-
};
|
|
39
9
|
/**
|
|
40
10
|
* Cast a uint8 array to a number.
|
|
41
11
|
* @param array - The uint8 array.
|
|
@@ -195,5 +165,4 @@ export declare function deserializeInt32(buf: Buffer, offset?: number): {
|
|
|
195
165
|
elem: number;
|
|
196
166
|
adv: number;
|
|
197
167
|
};
|
|
198
|
-
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplL3NlcmlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUM7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0NBQWtDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFlBQVksU0FBSSxHQUFHLE1BQU0sQ0FhL0Y7QUFFRDs7R0FFRztBQUNILEtBQUssYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsTUFBTSxFQUNYLE1BQU0sRUFBRSxNQUFNLEtBQ1g7SUFDSDs7T0FFRztJQUNILElBQUksRUFBRSxDQUFDLENBQUM7SUFDUjs7T0FFRztJQUNILEdBQUcsRUFBRSxNQUFNLENBQUM7Q0FDYixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsRUFDMUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLFNBQUksR0FDVDtJQUNEOztPQUVHO0lBQ0gsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ1Y7O09BRUc7SUFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDO0NBQ2IsQ0FXQTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUd6RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxTQUFJLEdBQUcsTUFBTSxDQUluRTtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQ7QUFFRCw4Q0FBOEM7QUFDOUMsTUFBTSxNQUFNLFVBQVUsR0FDbEIsT0FBTyxHQUNQLE1BQU0sR0FDTixVQUFVLEdBQ1YsTUFBTSxHQUNOLE1BQU0sR0FDTixNQUFNLEdBQ047SUFDRTs7T0FFRztJQUNILFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztDQUN4QixHQUNELFVBQVUsRUFBRSxDQUFDO0FBRWpCLGdFQUFnRTtBQUNoRSxNQUFNLE1BQU0sU0FBUyxHQUNqQixFQUFFLEdBQ0YsT0FBTyxHQUNQLE1BQU0sR0FDTixNQUFNLEdBQ04sTUFBTSxHQUNOO0lBQ0U7OztPQUdHO0lBQ0gsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ2hCLEdBQ0Q7SUFDRSw0QkFBNEI7SUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ25CLEdBQ0Q7SUFDRSx1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7Q0FDdEIsR0FDRCxTQUFTLEVBQUUsQ0FBQztBQUVoQixNQUFNLE1BQU0sWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0E0QnRFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FzQjVEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBRS9EO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBNEJsRDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBRXBEO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBUTFEO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUksRUFBRSxLQUFLLFNBQUs7OztFQUVwRTtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSSxFQUFFLEtBQUssU0FBSzs7O0VBTzFFO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksMkJBRXZDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdEQ7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3hEO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQifQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplL3NlcmlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUM7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0NBQWtDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFlBQVksU0FBSSxHQUFHLE1BQU0sQ0FhL0Y7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FHekQ7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsU0FBSSxHQUFHLE1BQU0sQ0FJbkU7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3ZEO0FBRUQsOENBQThDO0FBQzlDLE1BQU0sTUFBTSxVQUFVLEdBQ2xCLE9BQU8sR0FDUCxNQUFNLEdBQ04sVUFBVSxHQUNWLE1BQU0sR0FDTixNQUFNLEdBQ04sTUFBTSxHQUNOO0lBQ0U7O09BRUc7SUFDSCxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Q0FDeEIsR0FDRCxVQUFVLEVBQUUsQ0FBQztBQUVqQixnRUFBZ0U7QUFDaEUsTUFBTSxNQUFNLFNBQVMsR0FDakIsRUFBRSxHQUNGLE9BQU8sR0FDUCxNQUFNLEdBQ04sTUFBTSxHQUNOLE1BQU0sR0FDTjtJQUNFOzs7T0FHRztJQUNILElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUNoQixHQUNEO0lBQ0UsNEJBQTRCO0lBQzVCLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUNuQixHQUNEO0lBQ0UsdUNBQXVDO0lBQ3ZDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO0NBQ3RCLEdBQ0QsU0FBUyxFQUFFLENBQUM7QUFFaEIsTUFBTSxNQUFNLFlBQVksR0FBRyxVQUFVLEdBQUcsU0FBUyxDQUFDO0FBRWxEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isc0JBQXNCLENBQUMsR0FBRyxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBNEJ0RTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBc0I1RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUUvRDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQTRCbEQ7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxTQUFLLDJCQUVwRDtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxTQUFLLDJCQVExRDtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJLEVBQUUsS0FBSyxTQUFLOzs7RUFFcEU7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUksRUFBRSxLQUFLLFNBQUs7OztFQU8xRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLDJCQUV2QztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3REO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUk7OztFQUd4RDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3ZEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/serialize/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,YAAY,SAAI,GAAG,MAAM,CAa/F;AAED
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/serialize/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,YAAY,SAAI,GAAG,MAAM,CAa/F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAGzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,SAAI,GAAG,MAAM,CAInE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGvD;AAED,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,MAAM,GACN,UAAU,GACV,MAAM,GACN,MAAM,GACN,MAAM,GACN;IACE;;OAEG;IACH,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB,GACD,UAAU,EAAE,CAAC;AAEjB,gEAAgE;AAChE,MAAM,MAAM,SAAS,GACjB,EAAE,GACF,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN;IACE;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GACD;IACE,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GACD;IACE,uCAAuC;IACvC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;CACtB,GACD,SAAS,EAAE,CAAC;AAEhB,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CA4BtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAsB5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4BlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,2BAEpD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,2BAQ1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,KAAK,SAAK;;;EAEpE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,KAAK,SAAK;;;EAO1E;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,2BAEvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGvD"}
|
|
@@ -23,27 +23,6 @@ import { numToUInt32BE } from './free_funcs.js';
|
|
|
23
23
|
...arr
|
|
24
24
|
]);
|
|
25
25
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Deserializes an array from a vector on an element-by-element basis.
|
|
28
|
-
* @param deserialize - A function used to deserialize each element of the vector.
|
|
29
|
-
* @param vector - The vector to deserialize.
|
|
30
|
-
* @param offset - The position in the vector to start deserializing from.
|
|
31
|
-
* @returns Deserialized array and how many bytes we advanced by.
|
|
32
|
-
*/ export function deserializeArrayFromVector(deserialize, vector, offset = 0) {
|
|
33
|
-
let pos = offset;
|
|
34
|
-
const size = vector.readUInt32BE(pos);
|
|
35
|
-
pos += 4;
|
|
36
|
-
const arr = new Array(size);
|
|
37
|
-
for(let i = 0; i < size; ++i){
|
|
38
|
-
const { elem, adv } = deserialize(vector, pos);
|
|
39
|
-
pos += adv;
|
|
40
|
-
arr[i] = elem;
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
elem: arr,
|
|
44
|
-
adv: pos - offset
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
26
|
/**
|
|
48
27
|
* Cast a uint8 array to a number.
|
|
49
28
|
* @param array - The uint8 array.
|
package/dest/string/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare function bufferToHex(buffer: Buffer): `0x${string}`;
|
|
|
11
11
|
export declare function pluralize(str: string, count: number | bigint, plural?: string): string;
|
|
12
12
|
export declare function count(count: number | bigint, str: string, plural?: string): string;
|
|
13
13
|
export declare function truncate(str: string, length?: number): string;
|
|
14
|
+
/** Formats a duration in seconds into a compact human-readable string (e.g. `45s`, `12m`, `2h 5m`). */
|
|
15
|
+
export declare function formatSeconds(seconds: number): string;
|
|
14
16
|
export declare function isoDate(date?: Date): string;
|
|
15
17
|
export declare function urlJoin(...args: string[]): string;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOERBQThEO0FBQzlELE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxTQUFTLE1BQU0sSUFBSSxLQUFLLE1BQU0sRUFBRSxHQUFHO0lBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUE7Q0FBRSxDQUFDO0FBRWhHLHdCQUFnQixZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFOUQ7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRXBEO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBRXhEO0FBRUQsd0JBQWdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFMUM7QUFFRCx3QkFBZ0IsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUUvQztBQUVELHdCQUFnQixXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxLQUFLLE1BQU0sRUFBRSxDQUV6RDtBQUVELHdCQUFnQixTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUV0RjtBQUVELHdCQUFnQixLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUVsRjtBQUVELHdCQUFnQixRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUUsTUFBVyxHQUFHLE1BQU0sQ0FFakU7QUFFRCx1R0FBdUc7QUFDdkcsd0JBQWdCLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FXckQ7QUFFRCx3QkFBZ0IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksVUFFbEM7QUFFRCx3QkFBZ0IsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FzQmpEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,MAAM,GAAG,CAAC,WAAW,SAAS,MAAM,IAAI,KAAK,MAAM,EAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhG,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAExD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEzD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAEjE;AAED,wBAAgB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,UAElC;AAED,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAsBjD"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,MAAM,GAAG,CAAC,WAAW,SAAS,MAAM,IAAI,KAAK,MAAM,EAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhG,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAExD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEzD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAEjE;AAED,uGAAuG;AACvG,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWrD;AAED,wBAAgB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,UAElC;AAED,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAsBjD"}
|
package/dest/string/index.js
CHANGED
|
@@ -25,6 +25,18 @@ export function count(count, str, plural) {
|
|
|
25
25
|
export function truncate(str, length = 64) {
|
|
26
26
|
return str.length > length ? str.slice(0, length) + '...' : str;
|
|
27
27
|
}
|
|
28
|
+
/** Formats a duration in seconds into a compact human-readable string (e.g. `45s`, `12m`, `2h 5m`). */ export function formatSeconds(seconds) {
|
|
29
|
+
if (seconds < 60) {
|
|
30
|
+
return `${Math.round(seconds)}s`;
|
|
31
|
+
}
|
|
32
|
+
const minutes = Math.round(seconds / 60);
|
|
33
|
+
if (minutes < 60) {
|
|
34
|
+
return `${minutes}m`;
|
|
35
|
+
}
|
|
36
|
+
const hours = Math.floor(minutes / 60);
|
|
37
|
+
const remMinutes = minutes % 60;
|
|
38
|
+
return remMinutes > 0 ? `${hours}h ${remMinutes}m` : `${hours}h`;
|
|
39
|
+
}
|
|
28
40
|
export function isoDate(date) {
|
|
29
41
|
return (date ?? new Date()).toISOString().replace(/[-:T]/g, '').replace(/\..+$/, '');
|
|
30
42
|
}
|
|
@@ -9,7 +9,7 @@ export declare function readTestData(repoPath: string): Buffer;
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function updateInlineTestData(targetFileFromRepoRoot: string, itemName: string, value: string): void;
|
|
11
11
|
/**
|
|
12
|
-
* Updates the sample Prover.toml files in noir-projects/noir-protocol-circuits/crates/.
|
|
12
|
+
* Updates the sample Prover.toml files in noir-projects/fnd/noir-protocol-circuits/crates/.
|
|
13
13
|
* @remarks Requires AZTEC_GENERATE_TEST_DATA=1 to be set
|
|
14
14
|
* To re-gen, run 'AZTEC_GENERATE_TEST_DATA=1 FAKE_PROOFS=1 yarn test:e2e e2e_prover/full.test'
|
|
15
15
|
*/
|
|
@@ -38,12 +38,12 @@ export function readTestData(repoPath) {
|
|
|
38
38
|
logger(`Updated test data in ${targetFile} for ${itemName} to ${value}`);
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* Updates the sample Prover.toml files in noir-projects/noir-protocol-circuits/crates/.
|
|
41
|
+
* Updates the sample Prover.toml files in noir-projects/fnd/noir-protocol-circuits/crates/.
|
|
42
42
|
* @remarks Requires AZTEC_GENERATE_TEST_DATA=1 to be set
|
|
43
43
|
* To re-gen, run 'AZTEC_GENERATE_TEST_DATA=1 FAKE_PROOFS=1 yarn test:e2e e2e_prover/full.test'
|
|
44
44
|
*/ export function updateProtocolCircuitSampleInputs(circuitName, value) {
|
|
45
45
|
const logger = createConsoleLogger('aztec:testing:test_data');
|
|
46
|
-
const targetFileFromRepoRoot = `noir-projects/noir-protocol-circuits/crates/${circuitName}/Prover.toml`;
|
|
46
|
+
const targetFileFromRepoRoot = `noir-projects/fnd/noir-protocol-circuits/crates/${circuitName}/Prover.toml`;
|
|
47
47
|
const targetFile = getPathToFile(targetFileFromRepoRoot);
|
|
48
48
|
writeFileSync(targetFile, value);
|
|
49
49
|
logger(`Updated test data in ${targetFile} for ${circuitName}`);
|
|
@@ -2,6 +2,13 @@ import { z } from 'zod';
|
|
|
2
2
|
import { Fr } from '../curves/bn254/index.js';
|
|
3
3
|
import { type Tuple } from '../serialize/index.js';
|
|
4
4
|
import type { Hasher } from './hasher.js';
|
|
5
|
+
/**
|
|
6
|
+
* Upper bound on the elements a serialized sibling path may declare. The deepest protocol tree is 42 levels,
|
|
7
|
+
* and the stacked path proving L2-to-L1 message inclusion spans four unbalanced trees, so this leaves room to
|
|
8
|
+
* spare while keeping a malformed length prefix from driving a large allocation. `stdlib` asserts that it stays
|
|
9
|
+
* above every protocol tree height, which this package cannot check itself without depending on `@aztec/constants`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MAX_SIBLING_PATH_LENGTH = 128;
|
|
5
12
|
/**
|
|
6
13
|
* Contains functionality to compute and serialize/deserialize a sibling path.
|
|
7
14
|
* E.g. Sibling path for a leaf at index 3 in a tree of depth 3 consists of:
|
|
@@ -63,18 +70,9 @@ export declare class SiblingPath<N extends number> {
|
|
|
63
70
|
* @param buf - A buffer containing the buffer representation of SiblingPath.
|
|
64
71
|
* @param offset - An offset to start deserializing from.
|
|
65
72
|
* @returns A SiblingPath object.
|
|
73
|
+
* @throws If the length prefix exceeds MAX_SIBLING_PATH_LENGTH or the buffer holds fewer elements than it declares.
|
|
66
74
|
*/
|
|
67
75
|
static fromBuffer<N extends number>(buf: Buffer, offset?: number): SiblingPath<N>;
|
|
68
|
-
/**
|
|
69
|
-
* Deserializes a SiblingPath object from a slice of a part of a buffer and returns the amount of bytes advanced.
|
|
70
|
-
* @param buf - A buffer representation of the sibling path.
|
|
71
|
-
* @param offset - An offset to start deserializing from.
|
|
72
|
-
* @returns The deserialized sibling path and the number of bytes advanced.
|
|
73
|
-
*/
|
|
74
|
-
static deserialize<N extends number>(buf: Buffer, offset?: number): {
|
|
75
|
-
elem: SiblingPath<N>;
|
|
76
|
-
adv: number;
|
|
77
|
-
};
|
|
78
76
|
/**
|
|
79
77
|
* Serializes this SiblingPath object to a hex string representation.
|
|
80
78
|
* @returns A hex string representation of the sibling path.
|
|
@@ -95,4 +93,4 @@ export declare class SiblingPath<N extends number> {
|
|
|
95
93
|
}
|
|
96
94
|
/** Computes the expected root of a merkle tree given a leaf and its sibling path. */
|
|
97
95
|
export declare function computeRootFromSiblingPath(leaf: Buffer, siblingPath: Buffer[], index: number, hasher: (left: Buffer, right: Buffer) => Promise<Buffer>): Promise<Buffer<ArrayBufferLike>>;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2libGluZ19wYXRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvc2libGluZ19wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFHeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBZ0IsS0FBSyxLQUFLLEVBQW9ELE1BQU0sdUJBQXVCLENBQUM7QUFFbkgsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDOzs7OztHQUtHO0FBQ0gsZUFBTyxNQUFNLHVCQUF1QixNQUFNLENBQUM7QUFFM0M7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNO0lBU3JDLCtEQUErRDtJQUN4RCxRQUFRLEVBQUUsQ0FBQztJQVRwQixPQUFPLENBQUMsSUFBSSxDQUFtQjtJQUUvQjs7OztPQUlHO0lBQ0g7SUFDRSwrREFBK0Q7SUFDeEQsUUFBUSxFQUFFLENBQUM7SUFDbEIsNkJBQTZCO0lBQzdCLElBQUksRUFBRSxNQUFNLEVBQUUsRUFHZjtJQUVELE1BQU0sS0FBSyxNQUFNLDJJQUVoQjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxxSUFTekM7SUFFRCxNQUFNLDRCQUVMO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBYyxJQUFJLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBUWpHO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLGtCQUd4QztJQUVEOzs7T0FHRztJQUNJLFFBQVEsSUFBSSxNQUFNLENBRXhCO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUUvQjtJQUVEOzs7T0FHRztJQUNJLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFdEI7SUFFRDs7O09BR0c7SUFDSSxPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FHN0I7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBSTNFO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYyxVQUFVLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FFdkU7SUFFRDs7OztPQUlHO0lBQ0kscUJBQXFCLENBQUMsYUFBYSxTQUFTLE1BQU0sRUFBRSx3QkFBd0IsU0FBUyxNQUFNLEVBQ2hHLGFBQWEsRUFBRSxhQUFhLEdBQzNCLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUt2QztDQUNGO0FBRUQscUZBQXFGO0FBQ3JGLHdCQUFzQiwwQkFBMEIsQ0FDOUMsSUFBSSxFQUFFLE1BQU0sRUFDWixXQUFXLEVBQUUsTUFBTSxFQUFFLEVBQ3JCLEtBQUssRUFBRSxNQUFNLEVBQ2IsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsb0NBUXpEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sibling_path.d.ts","sourceRoot":"","sources":["../../src/trees/sibling_path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,
|
|
1
|
+
{"version":3,"file":"sibling_path.d.ts","sourceRoot":"","sources":["../../src/trees/sibling_path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAgB,KAAK,KAAK,EAAoD,MAAM,uBAAuB,CAAC;AAEnH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;;;;;;;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,2IAEhB;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,qIASzC;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;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAI3E;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,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,oCAQzD"}
|
|
@@ -2,8 +2,14 @@ import { z } from 'zod';
|
|
|
2
2
|
import { makeTuple } from '../array/array.js';
|
|
3
3
|
import { Fr } from '../curves/bn254/index.js';
|
|
4
4
|
import { schemas } from '../schemas/index.js';
|
|
5
|
-
import {
|
|
5
|
+
import { BufferReader, assertLength, serializeArrayOfBufferableToVector } from '../serialize/index.js';
|
|
6
6
|
import { bufferToHex, hexToBuffer } from '../string/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Upper bound on the elements a serialized sibling path may declare. The deepest protocol tree is 42 levels,
|
|
9
|
+
* and the stacked path proving L2-to-L1 message inclusion spans four unbalanced trees, so this leaves room to
|
|
10
|
+
* spare while keeping a malformed length prefix from driving a large allocation. `stdlib` asserts that it stays
|
|
11
|
+
* above every protocol tree height, which this package cannot check itself without depending on `@aztec/constants`.
|
|
12
|
+
*/ export const MAX_SIBLING_PATH_LENGTH = 128;
|
|
7
13
|
/**
|
|
8
14
|
* Contains functionality to compute and serialize/deserialize a sibling path.
|
|
9
15
|
* E.g. Sibling path for a leaf at index 3 in a tree of depth 3 consists of:
|
|
@@ -91,26 +97,13 @@ import { bufferToHex, hexToBuffer } from '../string/index.js';
|
|
|
91
97
|
* @param buf - A buffer containing the buffer representation of SiblingPath.
|
|
92
98
|
* @param offset - An offset to start deserializing from.
|
|
93
99
|
* @returns A SiblingPath object.
|
|
100
|
+
* @throws If the length prefix exceeds MAX_SIBLING_PATH_LENGTH or the buffer holds fewer elements than it declares.
|
|
94
101
|
*/ static fromBuffer(buf, offset = 0) {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
* @param buf - A buffer representation of the sibling path.
|
|
101
|
-
* @param offset - An offset to start deserializing from.
|
|
102
|
-
* @returns The deserialized sibling path and the number of bytes advanced.
|
|
103
|
-
*/ static deserialize(buf, offset = 0) {
|
|
104
|
-
const deserializePath = (buf, offset)=>({
|
|
105
|
-
elem: buf.slice(offset, offset + 32),
|
|
106
|
-
adv: 32
|
|
107
|
-
});
|
|
108
|
-
const { elem, adv } = deserializeArrayFromVector(deserializePath, buf, offset);
|
|
109
|
-
const size = elem.length;
|
|
110
|
-
return {
|
|
111
|
-
elem: new SiblingPath(size, elem),
|
|
112
|
-
adv
|
|
113
|
-
};
|
|
102
|
+
const reader = new BufferReader(buf, offset);
|
|
103
|
+
const path = reader.readVector({
|
|
104
|
+
fromBuffer: (r)=>r.readBytes(Fr.SIZE_IN_BYTES)
|
|
105
|
+
}, MAX_SIBLING_PATH_LENGTH);
|
|
106
|
+
return new SiblingPath(path.length, path);
|
|
114
107
|
}
|
|
115
108
|
/**
|
|
116
109
|
* Serializes this SiblingPath object to a hex string representation.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/foundation",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.330febf",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dest/index.js",
|
|
6
6
|
"types": "./dest/index.d.ts",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"testEnvironment": "../../foundation/src/jest/env.mjs"
|
|
147
147
|
},
|
|
148
148
|
"dependencies": {
|
|
149
|
-
"@aztec/bb.js": "0.0
|
|
149
|
+
"@aztec/bb.js": "6.0.0-nightly.20260807",
|
|
150
150
|
"@koa/cors": "^5.0.0",
|
|
151
151
|
"@noble/curves": "=1.7.0",
|
|
152
152
|
"@noble/hashes": "^1.6.1",
|
package/src/config/env_var.ts
CHANGED
|
@@ -84,6 +84,7 @@ export type EnvVar =
|
|
|
84
84
|
| 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
|
|
85
85
|
| 'FEE_RECIPIENT'
|
|
86
86
|
| 'FORCE_COLOR'
|
|
87
|
+
| 'GOVERNANCE_PROPOSER_FORCE_PAYLOAD_VOTE'
|
|
87
88
|
| 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS'
|
|
88
89
|
| 'KEY_STORE_DIRECTORY'
|
|
89
90
|
| 'L1_CHAIN_ID'
|
|
@@ -100,6 +101,7 @@ export type EnvVar =
|
|
|
100
101
|
| 'NETWORK'
|
|
101
102
|
| 'NETWORK_CONFIG_LOCATION'
|
|
102
103
|
| 'ALLOW_OVERRIDING_NETWORK_CONFIG'
|
|
104
|
+
| 'USE_AWS_LOGGING'
|
|
103
105
|
| 'USE_GCLOUD_LOGGING'
|
|
104
106
|
| 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
105
107
|
| 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
|
|
@@ -191,6 +193,7 @@ export type EnvVar =
|
|
|
191
193
|
| 'PROVER_FAILED_PROOF_STORE'
|
|
192
194
|
| 'PROVER_NODE_FAILED_EPOCH_STORE'
|
|
193
195
|
| 'PROVER_NODE_DISABLE_PROOF_PUBLISH'
|
|
196
|
+
| 'PROVER_NODE_PROOF_SUBMISSION_TARGET_ADDRESS'
|
|
194
197
|
| 'PROVER_ID'
|
|
195
198
|
| 'PROVER_NODE_POLLING_INTERVAL_MS'
|
|
196
199
|
| 'PROVER_NODE_MAX_PENDING_JOBS'
|
|
@@ -344,6 +347,11 @@ export type EnvVar =
|
|
|
344
347
|
| 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
|
|
345
348
|
| 'AZTEC_GOVERNANCE_VOTING_DURATION'
|
|
346
349
|
| 'AZTEC_EXIT_DELAY_SECONDS'
|
|
350
|
+
| 'AZTEC_ENTRY_QUEUE_BOOTSTRAP_VALIDATOR_SET_SIZE'
|
|
351
|
+
| 'AZTEC_ENTRY_QUEUE_BOOTSTRAP_FLUSH_SIZE'
|
|
352
|
+
| 'AZTEC_ENTRY_QUEUE_FLUSH_SIZE_MIN'
|
|
353
|
+
| 'AZTEC_ENTRY_QUEUE_FLUSH_SIZE_QUOTIENT'
|
|
354
|
+
| 'AZTEC_ENTRY_QUEUE_MAX_FLUSH_SIZE'
|
|
347
355
|
| 'L1_GAS_LIMIT_BUFFER_PERCENTAGE'
|
|
348
356
|
| 'L1_GAS_PRICE_MAX'
|
|
349
357
|
| 'L1_FEE_PER_GAS_GWEI_MAX'
|
package/src/crypto/keys/index.ts
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
|
-
import { BarretenbergSync } from '@aztec/bb.js';
|
|
1
|
+
import { BarretenbergSync, CircuitKind } from '@aztec/bb.js';
|
|
2
2
|
|
|
3
3
|
import { Fr } from '../../curves/bn254/field.js';
|
|
4
4
|
|
|
5
|
-
export async function
|
|
5
|
+
export async function vkAsFields(input: Buffer, kind: CircuitKind): Promise<Fr[]> {
|
|
6
6
|
await BarretenbergSync.initSingleton();
|
|
7
7
|
const api = BarretenbergSync.getSingleton();
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
switch (kind) {
|
|
9
|
+
case CircuitKind.App: {
|
|
10
|
+
const response = api.megaAppVkAsFields({ verificationKey: input });
|
|
11
|
+
return response.fields.map(field => Fr.fromBuffer(Buffer.from(field)));
|
|
12
|
+
}
|
|
13
|
+
case CircuitKind.Kernel: {
|
|
14
|
+
const response = api.megaKernelVkAsFields({ verificationKey: input });
|
|
15
|
+
return response.fields.map(field => Fr.fromBuffer(Buffer.from(field)));
|
|
16
|
+
}
|
|
17
|
+
case CircuitKind.HidingKernel: {
|
|
18
|
+
const response = api.megaZKVkAsFields({ verificationKey: input });
|
|
19
|
+
return response.fields.map(field => Fr.fromBuffer(Buffer.from(field)));
|
|
20
|
+
}
|
|
21
|
+
default: {
|
|
22
|
+
const _exhaustive: never = kind;
|
|
23
|
+
throw new Error(`vkAsFields: unhandled CircuitKind ${_exhaustive}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
10
26
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import EventEmitter from 'node:events';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
|
+
import * as net from 'node:net';
|
|
3
4
|
import type { Readable } from 'node:stream';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -36,8 +37,22 @@ export class FifoFrameReader extends EventEmitter<FifoFrameReaderEvents> {
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
/** Open a FIFO at the given path and start reading frames. */
|
|
39
|
-
start(fifoPath: string
|
|
40
|
-
|
|
40
|
+
start(fifoPath: string): void {
|
|
41
|
+
// Read the FIFO through a libuv pipe handle (net.Socket) rather than fs.createReadStream.
|
|
42
|
+
// An fs read stream services the pipe with a blocking threadpool read that destroy() cannot
|
|
43
|
+
// cancel: if a writer never closes, that read stays parked and keeps the host process alive
|
|
44
|
+
// (manifesting as Jest "did not exit"). Opening O_NONBLOCK and wrapping the fd in a pipe
|
|
45
|
+
// handle makes reads epoll-based, so stop()'s destroy() releases the handle immediately,
|
|
46
|
+
// regardless of whether the writer is still attached.
|
|
47
|
+
const fd = fs.openSync(fifoPath, fs.constants.O_RDONLY | fs.constants.O_NONBLOCK);
|
|
48
|
+
let socket: net.Socket;
|
|
49
|
+
try {
|
|
50
|
+
socket = new net.Socket({ fd, readable: true, writable: false });
|
|
51
|
+
} catch (err) {
|
|
52
|
+
fs.closeSync(fd);
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
this.startFromStream(socket);
|
|
41
56
|
}
|
|
42
57
|
|
|
43
58
|
/** Start reading frames from an existing readable stream. */
|
|
@@ -14,8 +14,9 @@ const DEFAULT_BATCH_WINDOW_MS = 0;
|
|
|
14
14
|
// the maximum size of a batched request
|
|
15
15
|
const DEFAULT_MAX_BATCH_SIZE = 100;
|
|
16
16
|
|
|
17
|
-
//
|
|
18
|
-
|
|
17
|
+
// 1 mb, matching the JSON-RPC server's default maxBodySizeBytes so the client never assembles a batch the
|
|
18
|
+
// server rejects for exceeding the body limit
|
|
19
|
+
const DEFAULT_MAX_REQUESTY_BODY_SIZE = 1 * 1024 * 1024;
|
|
19
20
|
|
|
20
21
|
export type SafeJsonRpcClientOptions = {
|
|
21
22
|
namespaceMethods?: string | false;
|
|
@@ -224,7 +224,11 @@ export class SafeJsonRpcServer {
|
|
|
224
224
|
result = await this.proxy.call(method, params);
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
return
|
|
227
|
+
// Coerce an undefined return value to null so the response always carries a `result` key.
|
|
228
|
+
// JSON.stringify drops undefined-valued keys, which would otherwise produce a JSON-RPC
|
|
229
|
+
// response with neither `result` nor `error` — a spec violation that leaves callers unable
|
|
230
|
+
// to distinguish "not found" from a malformed response.
|
|
231
|
+
return { jsonrpc, id, result: result ?? null };
|
|
228
232
|
} catch (err: any) {
|
|
229
233
|
if (err && err instanceof ZodError) {
|
|
230
234
|
const message = err.issues.map(e => `${e.message} (${e.path.join('.')})`).join('. ') || 'Validation error';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { pino } from 'pino';
|
|
2
|
+
|
|
3
|
+
function getSeverity(label: string): { severityText: string; severityNumber: number } {
|
|
4
|
+
switch (label) {
|
|
5
|
+
case 'trace':
|
|
6
|
+
return { severityText: 'TRACE', severityNumber: 1 };
|
|
7
|
+
case 'debug':
|
|
8
|
+
return { severityText: 'DEBUG', severityNumber: 5 };
|
|
9
|
+
case 'verbose':
|
|
10
|
+
return { severityText: 'VERBOSE', severityNumber: 7 };
|
|
11
|
+
case 'info':
|
|
12
|
+
return { severityText: 'INFO', severityNumber: 9 };
|
|
13
|
+
case 'warn':
|
|
14
|
+
return { severityText: 'WARN', severityNumber: 13 };
|
|
15
|
+
case 'error':
|
|
16
|
+
return { severityText: 'ERROR', severityNumber: 17 };
|
|
17
|
+
case 'fatal':
|
|
18
|
+
return { severityText: 'FATAL', severityNumber: 21 };
|
|
19
|
+
default:
|
|
20
|
+
return { severityText: 'UNSPECIFIED', severityNumber: 0 };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Pino configuration that adds OpenTelemetry severity fields understood by CloudWatch Logs. */
|
|
25
|
+
export const AWSCloudLoggerConfig = {
|
|
26
|
+
messageKey: 'msg',
|
|
27
|
+
formatters: {
|
|
28
|
+
level(label: string, level: number): object {
|
|
29
|
+
return { level, ...getSeverity(label) };
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
} satisfies pino.LoggerOptions;
|
package/src/log/pino-logger.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { inspect } from 'util';
|
|
|
7
7
|
import { compactArray } from '../collection/array.js';
|
|
8
8
|
import type { EnvVar } from '../config/index.js';
|
|
9
9
|
import { parseBooleanEnv } from '../config/parse-env.js';
|
|
10
|
+
import { AWSCloudLoggerConfig } from './aws-logger-config.js';
|
|
10
11
|
import { convertBigintsToStrings } from './bigint-utils.js';
|
|
11
12
|
import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
|
|
12
13
|
import { getLogLevelFromFilters, parseLogLevelEnvVar } from './log-filters.js';
|
|
@@ -134,8 +135,17 @@ export const [logLevel, logFilters] = parseLogLevelEnvVar(process.env.LOG_LEVEL,
|
|
|
134
135
|
// Define custom logging levels for pino.
|
|
135
136
|
const customLevels = { verbose: 25 };
|
|
136
137
|
|
|
137
|
-
// Global pino options, tweaked for
|
|
138
|
+
// Global pino options, tweaked for the active cloud logging backend.
|
|
138
139
|
const useGcloudLogging = parseBooleanEnv(process.env['USE_GCLOUD_LOGGING' satisfies EnvVar]);
|
|
140
|
+
const useAwsLogging = parseBooleanEnv(process.env['USE_AWS_LOGGING' satisfies EnvVar]);
|
|
141
|
+
const loggingConfig = useGcloudLogging
|
|
142
|
+
? GoogleCloudLoggerConfig
|
|
143
|
+
: useAwsLogging
|
|
144
|
+
? AWSCloudLoggerConfig
|
|
145
|
+
: {
|
|
146
|
+
formatters: {},
|
|
147
|
+
messageKey: 'msg',
|
|
148
|
+
};
|
|
139
149
|
|
|
140
150
|
const redactedPaths = [
|
|
141
151
|
'validatorPrivateKeys',
|
|
@@ -156,7 +166,7 @@ const redactedPaths = [
|
|
|
156
166
|
|
|
157
167
|
const pinoOpts: pino.LoggerOptions<keyof typeof customLevels> = {
|
|
158
168
|
customLevels,
|
|
159
|
-
messageKey:
|
|
169
|
+
messageKey: loggingConfig.messageKey,
|
|
160
170
|
useOnlyCustomLevels: false,
|
|
161
171
|
level: logLevel,
|
|
162
172
|
redact: {
|
|
@@ -170,8 +180,8 @@ const pinoOpts: pino.LoggerOptions<keyof typeof customLevels> = {
|
|
|
170
180
|
},
|
|
171
181
|
formatters: {
|
|
172
182
|
log: obj => convertBigintsToStrings(obj) as Record<string, unknown>,
|
|
183
|
+
...loggingConfig.formatters,
|
|
173
184
|
},
|
|
174
|
-
...(useGcloudLogging ? GoogleCloudLoggerConfig : {}),
|
|
175
185
|
};
|
|
176
186
|
|
|
177
187
|
export const levels = {
|
|
@@ -241,7 +251,7 @@ const pinoPrettyBaseOpts = {
|
|
|
241
251
|
destination: 2,
|
|
242
252
|
sync: true,
|
|
243
253
|
colorize: useColor,
|
|
244
|
-
ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity',
|
|
254
|
+
ignore: 'module,actor,instanceId,pid,hostname,trace_id,span_id,trace_flags,severity,severityText,severityNumber',
|
|
245
255
|
customLevels: 'fatal:60,error:50,warn:40,info:30,verbose:25,debug:20,trace:10',
|
|
246
256
|
customColors: 'fatal:bgRed,error:red,warn:yellow,info:green,verbose:magenta,debug:blue,trace:gray',
|
|
247
257
|
minimumLevel: 'trace' as const,
|
|
@@ -255,6 +255,11 @@ export class BufferReader {
|
|
|
255
255
|
if (maxSize !== undefined && size > maxSize) {
|
|
256
256
|
throw new Error(`Vector size ${size} exceeds maximum allowed ${maxSize}`);
|
|
257
257
|
}
|
|
258
|
+
// Every element consumes at least one byte, so a size beyond the bytes left is unsatisfiable. Reject it
|
|
259
|
+
// up front rather than relying on each item deserializer to bounds-check as the loop runs out of input.
|
|
260
|
+
if (size > this.remainingBytes()) {
|
|
261
|
+
throw new Error(`Vector size ${size} exceeds remaining buffer length ${this.remainingBytes()}`);
|
|
262
|
+
}
|
|
258
263
|
const result = new Array<T>(size);
|
|
259
264
|
for (let i = 0; i < size; i++) {
|
|
260
265
|
result[i] = itemDeserializer.fromBuffer(this);
|
|
@@ -23,56 +23,6 @@ export function serializeArrayOfBufferableToVector(objs: Bufferable[], prefixLen
|
|
|
23
23
|
return Buffer.concat([lengthBuf, ...arr]);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
/**
|
|
27
|
-
* Helper function for deserializeArrayFromVector.
|
|
28
|
-
*/
|
|
29
|
-
type DeserializeFn<T> = (
|
|
30
|
-
buf: Buffer,
|
|
31
|
-
offset: number,
|
|
32
|
-
) => {
|
|
33
|
-
/**
|
|
34
|
-
* The deserialized type.
|
|
35
|
-
*/
|
|
36
|
-
elem: T;
|
|
37
|
-
/**
|
|
38
|
-
* How many bytes to advance by.
|
|
39
|
-
*/
|
|
40
|
-
adv: number;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Deserializes an array from a vector on an element-by-element basis.
|
|
45
|
-
* @param deserialize - A function used to deserialize each element of the vector.
|
|
46
|
-
* @param vector - The vector to deserialize.
|
|
47
|
-
* @param offset - The position in the vector to start deserializing from.
|
|
48
|
-
* @returns Deserialized array and how many bytes we advanced by.
|
|
49
|
-
*/
|
|
50
|
-
export function deserializeArrayFromVector<T>(
|
|
51
|
-
deserialize: DeserializeFn<T>,
|
|
52
|
-
vector: Buffer,
|
|
53
|
-
offset = 0,
|
|
54
|
-
): {
|
|
55
|
-
/**
|
|
56
|
-
* The deserialized array.
|
|
57
|
-
*/
|
|
58
|
-
elem: T[];
|
|
59
|
-
/**
|
|
60
|
-
* How many bytes we advanced by.
|
|
61
|
-
*/
|
|
62
|
-
adv: number;
|
|
63
|
-
} {
|
|
64
|
-
let pos = offset;
|
|
65
|
-
const size = vector.readUInt32BE(pos);
|
|
66
|
-
pos += 4;
|
|
67
|
-
const arr = new Array<T>(size);
|
|
68
|
-
for (let i = 0; i < size; ++i) {
|
|
69
|
-
const { elem, adv } = deserialize(vector, pos);
|
|
70
|
-
pos += adv;
|
|
71
|
-
arr[i] = elem;
|
|
72
|
-
}
|
|
73
|
-
return { elem: arr, adv: pos - offset };
|
|
74
|
-
}
|
|
75
|
-
|
|
76
26
|
/**
|
|
77
27
|
* Cast a uint8 array to a number.
|
|
78
28
|
* @param array - The uint8 array.
|
package/src/string/index.ts
CHANGED
|
@@ -37,6 +37,20 @@ export function truncate(str: string, length: number = 64): string {
|
|
|
37
37
|
return str.length > length ? str.slice(0, length) + '...' : str;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
/** Formats a duration in seconds into a compact human-readable string (e.g. `45s`, `12m`, `2h 5m`). */
|
|
41
|
+
export function formatSeconds(seconds: number): string {
|
|
42
|
+
if (seconds < 60) {
|
|
43
|
+
return `${Math.round(seconds)}s`;
|
|
44
|
+
}
|
|
45
|
+
const minutes = Math.round(seconds / 60);
|
|
46
|
+
if (minutes < 60) {
|
|
47
|
+
return `${minutes}m`;
|
|
48
|
+
}
|
|
49
|
+
const hours = Math.floor(minutes / 60);
|
|
50
|
+
const remMinutes = minutes % 60;
|
|
51
|
+
return remMinutes > 0 ? `${hours}h ${remMinutes}m` : `${hours}h`;
|
|
52
|
+
}
|
|
53
|
+
|
|
40
54
|
export function isoDate(date?: Date) {
|
|
41
55
|
return (date ?? new Date()).toISOString().replace(/[-:T]/g, '').replace(/\..+$/, '');
|
|
42
56
|
}
|
|
@@ -50,13 +50,13 @@ export function updateInlineTestData(targetFileFromRepoRoot: string, itemName: s
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
|
-
* Updates the sample Prover.toml files in noir-projects/noir-protocol-circuits/crates/.
|
|
53
|
+
* Updates the sample Prover.toml files in noir-projects/fnd/noir-protocol-circuits/crates/.
|
|
54
54
|
* @remarks Requires AZTEC_GENERATE_TEST_DATA=1 to be set
|
|
55
55
|
* To re-gen, run 'AZTEC_GENERATE_TEST_DATA=1 FAKE_PROOFS=1 yarn test:e2e e2e_prover/full.test'
|
|
56
56
|
*/
|
|
57
57
|
export function updateProtocolCircuitSampleInputs(circuitName: string, value: string) {
|
|
58
58
|
const logger = createConsoleLogger('aztec:testing:test_data');
|
|
59
|
-
const targetFileFromRepoRoot = `noir-projects/noir-protocol-circuits/crates/${circuitName}/Prover.toml`;
|
|
59
|
+
const targetFileFromRepoRoot = `noir-projects/fnd/noir-protocol-circuits/crates/${circuitName}/Prover.toml`;
|
|
60
60
|
const targetFile = getPathToFile(targetFileFromRepoRoot);
|
|
61
61
|
writeFileSync(targetFile, value);
|
|
62
62
|
logger(`Updated test data in ${targetFile} for ${circuitName}`);
|