@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.
Files changed (47) hide show
  1. package/dest/config/env_var.d.ts +2 -2
  2. package/dest/config/env_var.d.ts.map +1 -1
  3. package/dest/crypto/keys/index.d.ts +3 -2
  4. package/dest/crypto/keys/index.d.ts.map +1 -1
  5. package/dest/crypto/keys/index.js +30 -6
  6. package/dest/fifo/fifo_frame_reader.d.ts +2 -2
  7. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -1
  8. package/dest/fifo/fifo_frame_reader.js +21 -4
  9. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  10. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  11. package/dest/json-rpc/client/safe_json_rpc_client.js +3 -2
  12. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +1 -1
  13. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  14. package/dest/json-rpc/server/safe_json_rpc_server.js +5 -1
  15. package/dest/log/aws-logger-config.d.ts +8 -0
  16. package/dest/log/aws-logger-config.d.ts.map +1 -0
  17. package/dest/log/aws-logger-config.js +55 -0
  18. package/dest/log/pino-logger.d.ts +1 -1
  19. package/dest/log/pino-logger.d.ts.map +1 -1
  20. package/dest/log/pino-logger.js +12 -6
  21. package/dest/serialize/buffer_reader.d.ts +1 -1
  22. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  23. package/dest/serialize/buffer_reader.js +5 -0
  24. package/dest/serialize/serialize.d.ts +1 -32
  25. package/dest/serialize/serialize.d.ts.map +1 -1
  26. package/dest/serialize/serialize.js +0 -21
  27. package/dest/string/index.d.ts +3 -1
  28. package/dest/string/index.d.ts.map +1 -1
  29. package/dest/string/index.js +12 -0
  30. package/dest/testing/files/index.d.ts +1 -1
  31. package/dest/testing/files/index.js +2 -2
  32. package/dest/trees/sibling_path.d.ts +9 -11
  33. package/dest/trees/sibling_path.d.ts.map +1 -1
  34. package/dest/trees/sibling_path.js +13 -20
  35. package/package.json +2 -2
  36. package/src/config/env_var.ts +8 -0
  37. package/src/crypto/keys/index.ts +20 -4
  38. package/src/fifo/fifo_frame_reader.ts +17 -2
  39. package/src/json-rpc/client/safe_json_rpc_client.ts +3 -2
  40. package/src/json-rpc/server/safe_json_rpc_server.ts +5 -1
  41. package/src/log/aws-logger-config.ts +32 -0
  42. package/src/log/pino-logger.ts +14 -4
  43. package/src/serialize/buffer_reader.ts +5 -0
  44. package/src/serialize/serialize.ts +0 -50
  45. package/src/string/index.ts +14 -0
  46. package/src/testing/files/index.ts +2 -2
  47. 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
- export {};
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":"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"}
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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOERBQThEO0FBQzlELE1BQU0sTUFBTSxHQUFHLENBQUMsV0FBVyxTQUFTLE1BQU0sSUFBSSxLQUFLLE1BQU0sRUFBRSxHQUFHO0lBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUE7Q0FBRSxDQUFDO0FBRWhHLHdCQUFnQixZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFOUQ7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBRXBEO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBRXhEO0FBRUQsd0JBQWdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFMUM7QUFFRCx3QkFBZ0IsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUUvQztBQUVELHdCQUFnQixXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxLQUFLLE1BQU0sRUFBRSxDQUV6RDtBQUVELHdCQUFnQixTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUV0RjtBQUVELHdCQUFnQixLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUVsRjtBQUVELHdCQUFnQixRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUUsTUFBVyxHQUFHLE1BQU0sQ0FFakU7QUFFRCx3QkFBZ0IsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksVUFFbEM7QUFFRCx3QkFBZ0IsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FzQmpEIn0=
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"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2libGluZ19wYXRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvc2libGluZ19wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFHeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFDTCxLQUFLLEtBQUssRUFJWCxNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQzs7Ozs7Ozs7O0dBU0c7QUFDSCxxQkFBYSxXQUFXLENBQUMsQ0FBQyxTQUFTLE1BQU07SUFTckMsK0RBQStEO0lBQ3hELFFBQVEsRUFBRSxDQUFDO0lBVHBCLE9BQU8sQ0FBQyxJQUFJLENBQW1CO0lBRS9COzs7O09BSUc7SUFDSDtJQUNFLCtEQUErRDtJQUN4RCxRQUFRLEVBQUUsQ0FBQztJQUNsQiw2QkFBNkI7SUFDN0IsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUdmO0lBRUQsTUFBTSxLQUFLLE1BQU0sMklBRWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLHFJQVN6QztJQUVELE1BQU0sNEJBRUw7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFjLElBQUksQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FRakc7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsa0JBR3hDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7O09BR0c7SUFDSSxhQUFhLElBQUksTUFBTSxFQUFFLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUV0QjtJQUVEOzs7T0FHRztJQUNJLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUc3QjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUczRTtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7TUFRM0Q7SUFFRDs7O09BR0c7SUFDSSxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUV2RTtJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxhQUFhLFNBQVMsTUFBTSxFQUFFLHdCQUF3QixTQUFTLE1BQU0sRUFDaEcsYUFBYSxFQUFFLGFBQWEsR0FDM0IsV0FBVyxDQUFDLHdCQUF3QixDQUFDLENBS3ZDO0NBQ0Y7QUFFRCxxRkFBcUY7QUFDckYsd0JBQXNCLDBCQUEwQixDQUM5QyxJQUFJLEVBQUUsTUFBTSxFQUNaLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFDckIsS0FBSyxFQUFFLE1BQU0sRUFDYixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxvQ0FRekQifQ==
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,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,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;;;;;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,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,oCAQzD"}
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 { assertLength, deserializeArrayFromVector, serializeArrayOfBufferableToVector } from '../serialize/index.js';
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 { elem } = SiblingPath.deserialize(buf, offset);
96
- return elem;
97
- }
98
- /**
99
- * Deserializes a SiblingPath object from a slice of a part of a buffer and returns the amount of bytes advanced.
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.3100065",
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.1-commit.3100065",
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",
@@ -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'
@@ -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 vkAsFieldsMegaHonk(input: Buffer): Promise<Fr[]> {
5
+ export async function vkAsFields(input: Buffer, kind: CircuitKind): Promise<Fr[]> {
6
6
  await BarretenbergSync.initSingleton();
7
7
  const api = BarretenbergSync.getSingleton();
8
- const response = api.megaVkAsFields({ verificationKey: input });
9
- return response.fields.map(field => Fr.fromBuffer(Buffer.from(field)));
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, highWaterMark = 64 * 1024): void {
40
- this.startFromStream(fs.createReadStream(fifoPath, { highWaterMark }));
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
- // 10 mb
18
- const DEFAULT_MAX_REQUESTY_BODY_SIZE = 10 * 1024 * 1024;
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 { jsonrpc, id, result };
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;
@@ -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 google cloud if running there.
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: 'msg',
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.
@@ -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}`);