@aztec/foundation 0.0.1-commit.3e3d0c9cd → 0.0.1-commit.3f5453c7b

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 (98) hide show
  1. package/dest/branded-types/checkpoint_number.d.ts +4 -1
  2. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  3. package/dest/branded-types/checkpoint_number.js +3 -0
  4. package/dest/branded-types/slot.d.ts +4 -1
  5. package/dest/branded-types/slot.d.ts.map +1 -1
  6. package/dest/branded-types/slot.js +3 -0
  7. package/dest/buffer/buffer16.d.ts +3 -1
  8. package/dest/buffer/buffer16.d.ts.map +1 -1
  9. package/dest/buffer/buffer32.d.ts +3 -1
  10. package/dest/buffer/buffer32.d.ts.map +1 -1
  11. package/dest/collection/array.d.ts +3 -1
  12. package/dest/collection/array.d.ts.map +1 -1
  13. package/dest/collection/array.js +15 -0
  14. package/dest/collection/index.d.ts +2 -1
  15. package/dest/collection/index.d.ts.map +1 -1
  16. package/dest/collection/index.js +1 -0
  17. package/dest/collection/lru_set.d.ts +35 -0
  18. package/dest/collection/lru_set.d.ts.map +1 -0
  19. package/dest/collection/lru_set.js +95 -0
  20. package/dest/config/env_var.d.ts +2 -2
  21. package/dest/config/env_var.d.ts.map +1 -1
  22. package/dest/crypto/aes128/index.d.ts +2 -1
  23. package/dest/crypto/aes128/index.d.ts.map +1 -1
  24. package/dest/crypto/aes128/index.js +11 -2
  25. package/dest/crypto/bls/bn254_keystore.d.ts +1 -10
  26. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  27. package/dest/crypto/bls/bn254_keystore.js +0 -17
  28. package/dest/crypto/poseidon/index.d.ts +1 -1
  29. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  30. package/dest/crypto/poseidon/index.js +40 -33
  31. package/dest/curves/grumpkin/point.d.ts +4 -4
  32. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  33. package/dest/curves/grumpkin/point.js +7 -4
  34. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  35. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  36. package/dest/fifo/fifo_frame_reader.js +74 -0
  37. package/dest/fifo/index.d.ts +2 -0
  38. package/dest/fifo/index.d.ts.map +1 -0
  39. package/dest/fifo/index.js +1 -0
  40. package/dest/json-rpc/client/fetch.d.ts +1 -1
  41. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  42. package/dest/json-rpc/client/fetch.js +4 -3
  43. package/dest/json-rpc/client/undici.d.ts +1 -1
  44. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  45. package/dest/json-rpc/client/undici.js +5 -3
  46. package/dest/log/pino-logger.d.ts +1 -1
  47. package/dest/log/pino-logger.d.ts.map +1 -1
  48. package/dest/log/pino-logger.js +17 -2
  49. package/dest/queue/batch_queue.d.ts +1 -1
  50. package/dest/queue/batch_queue.d.ts.map +1 -1
  51. package/dest/queue/batch_queue.js +1 -0
  52. package/dest/retry/index.d.ts +12 -1
  53. package/dest/retry/index.d.ts.map +1 -1
  54. package/dest/retry/index.js +21 -0
  55. package/dest/schemas/api.d.ts +2 -2
  56. package/dest/schemas/api.d.ts.map +1 -1
  57. package/dest/string/index.js +1 -1
  58. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  59. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  60. package/dest/transport/index.d.ts +1 -2
  61. package/dest/transport/index.d.ts.map +1 -1
  62. package/dest/transport/index.js +0 -1
  63. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  64. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  65. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  66. package/package.json +3 -2
  67. package/src/branded-types/checkpoint_number.ts +5 -0
  68. package/src/branded-types/slot.ts +5 -0
  69. package/src/buffer/buffer16.ts +3 -0
  70. package/src/buffer/buffer32.ts +3 -0
  71. package/src/collection/array.ts +14 -0
  72. package/src/collection/index.ts +1 -0
  73. package/src/collection/lru_set.ts +115 -0
  74. package/src/config/env_var.ts +11 -7
  75. package/src/crypto/aes128/index.ts +11 -2
  76. package/src/crypto/bls/bn254_keystore.ts +0 -23
  77. package/src/crypto/poseidon/index.ts +42 -34
  78. package/src/curves/grumpkin/point.ts +6 -3
  79. package/src/fifo/fifo_frame_reader.ts +98 -0
  80. package/src/fifo/index.ts +1 -0
  81. package/src/json-rpc/client/fetch.ts +4 -3
  82. package/src/json-rpc/client/undici.ts +5 -3
  83. package/src/log/pino-logger.ts +19 -2
  84. package/src/queue/batch_queue.ts +1 -0
  85. package/src/retry/index.ts +30 -0
  86. package/src/schemas/api.ts +4 -1
  87. package/src/string/index.ts +1 -1
  88. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  89. package/src/transport/index.ts +0 -1
  90. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  91. package/dest/crypto/serialize.d.ts +0 -51
  92. package/dest/crypto/serialize.d.ts.map +0 -1
  93. package/dest/crypto/serialize.js +0 -68
  94. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  95. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  96. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  97. package/src/crypto/serialize.ts +0 -85
  98. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
@@ -1,6 +1,15 @@
1
1
  import { type TransferDescriptor } from '../interface/transferable.js';
2
2
  import type { TransportClient } from '../transport_client.js';
3
- import type { DispatchMsg } from './create_dispatch_fn.js';
3
+ /**
4
+ * Represents a message object for dispatching function calls.
5
+ * Contains the function name ('fn') and an array of arguments ('args') required to call the target method.
6
+ */
7
+ export interface DispatchMsg {
8
+ /** Name of the target method to be called. */
9
+ fn: string;
10
+ /** An array of arguments to be passed to the target method. */
11
+ args: any[];
12
+ }
4
13
  /**
5
14
  * FilterOutAttributes type filters out all non-method properties of an object, leaving only the attributes
6
15
  * that are functions. This is useful for creating proxies or wrappers around objects while focusing only
@@ -99,4 +108,4 @@ export declare function createDispatchProxy<T>(class_: {
99
108
  new (...args: any[]): T;
100
109
  }, transportClient: TransportClient<DispatchMsg>): Proxify<T>;
101
110
  export {};
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2Rpc3BhdGNoX3Byb3h5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNwb3J0L2Rpc3BhdGNoL2NyZWF0ZV9kaXNwYXRjaF9wcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBd0IsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUzRDs7OztHQUlHO0FBQ0gsS0FBSyxtQkFBbUIsQ0FBQyxJQUFJLElBQUk7S0FDOUIsR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUs7Q0FDaEYsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxLQUFLLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRTVHOzs7Ozs7OztHQVFHO0FBQ0gsS0FBSyxTQUFTLENBQUMsSUFBSSxTQUFTO0lBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQTtDQUFFLElBQUk7S0FDcEUsR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMzRyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsS0FBSyxhQUFhLENBQUMsS0FBSyxTQUFTLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7S0FDaEQsS0FBSyxJQUFJLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxZQUFZLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0NBQ3RILENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILEtBQUsseUJBQXlCLENBQUMsU0FBUyxTQUFTLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUN4RSxHQUFHLElBQUksRUFBRSxTQUFTLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssS0FDNUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTNCOzs7OztHQUtHO0FBQ0gsS0FBSyxhQUFhLENBQUMsSUFBSSxTQUFTO0lBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsQ0FBQTtDQUFFLElBQUk7S0FDeEUsR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMxRCxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxNQUFNLE9BQU8sQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFMUU7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHdCQUFnQix5QkFBeUIsQ0FBQyxDQUFDLEVBQ3pDLE1BQU0sRUFBRTtJQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0NBQUUsRUFDbkMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sS0FBSyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FDMUQsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQVNaO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLG1CQUFtQixDQUFDLENBQUMsRUFDbkMsTUFBTSxFQUFFO0lBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxFQUNuQyxlQUFlLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBcUJaIn0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX2Rpc3BhdGNoX3Byb3h5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNwb3J0L2Rpc3BhdGNoL2NyZWF0ZV9kaXNwYXRjaF9wcm94eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBd0IsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFNLFdBQVcsV0FBVztJQUMxQiw4Q0FBOEM7SUFDOUMsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLCtEQUErRDtJQUMvRCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7Q0FDYjtBQUVEOzs7O0dBSUc7QUFDSCxLQUFLLG1CQUFtQixDQUFDLElBQUksSUFBSTtLQUM5QixHQUFHLElBQUksTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSztDQUNoRixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILEtBQUssaUJBQWlCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFNUc7Ozs7Ozs7O0dBUUc7QUFDSCxLQUFLLFNBQVMsQ0FBQyxJQUFJLFNBQVM7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFBO0NBQUUsSUFBSTtLQUNwRSxHQUFHLElBQUksTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQzNHLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxLQUFLLGFBQWEsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtLQUNoRCxLQUFLLElBQUksTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7Q0FDdEgsQ0FBQztBQUVGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsS0FBSyx5QkFBeUIsQ0FBQyxTQUFTLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQ3hFLEdBQUcsSUFBSSxFQUFFLFNBQVMsU0FBUyxDQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUM1RSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFM0I7Ozs7O0dBS0c7QUFDSCxLQUFLLGFBQWEsQ0FBQyxJQUFJLFNBQVM7SUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxDQUFBO0NBQUUsSUFBSTtLQUN4RSxHQUFHLElBQUksTUFBTSxJQUFJLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQzFELENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLE1BQU0sT0FBTyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUxRTs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLENBQUMsRUFDekMsTUFBTSxFQUFFO0lBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7Q0FBRSxFQUNuQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUMxRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBU1o7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsbUJBQW1CLENBQUMsQ0FBQyxFQUNuQyxNQUFNLEVBQUU7SUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtDQUFFLEVBQ25DLGVBQWUsRUFBRSxlQUFlLENBQUMsV0FBVyxDQUFDLEdBQzVDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FxQloifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"create_dispatch_proxy.d.ts","sourceRoot":"","sources":["../../../src/transport/dispatch/create_dispatch_proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create_dispatch_proxy.d.ts","sourceRoot":"","sources":["../../../src/transport/dispatch/create_dispatch_proxy.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- export * from './dispatch/create_dispatch_fn.js';
2
1
  export * from './dispatch/create_dispatch_proxy.js';
3
2
  export * from './dispatch/messages.js';
4
3
  export * from './interface/connector.js';
@@ -8,4 +7,4 @@ export * from './interface/transferable.js';
8
7
  export * from './transport_client.js';
9
8
  export * from './transport_server.js';
10
9
  export * from './node/index.js';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQkFBaUIsQ0FBQyJ9
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUJBQWlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC"}
@@ -1,4 +1,3 @@
1
- export * from './dispatch/create_dispatch_fn.js';
2
1
  export * from './dispatch/create_dispatch_proxy.js';
3
2
  export * from './dispatch/messages.js';
4
3
  export * from './interface/connector.js';
@@ -18,4 +18,4 @@ export declare class IndexedMerkleTreeCalculator<T extends IndexedTreeLeafPreima
18
18
  computeTreeRoot(leaves?: Buffer[]): Promise<Buffer>;
19
19
  }
20
20
  export {};
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF9tZXJrbGVfdHJlZV9jYWxjdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvaW5kZXhlZF9tZXJrbGVfdHJlZV9jYWxjdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdELFVBQVUsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLHVCQUF1QjtJQUM3RCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7Q0FDL0I7QUFFRDs7R0FFRztBQUNILHFCQUFhLDJCQUEyQixDQUFDLENBQUMsU0FBUyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsTUFBTTtJQUV4RixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLE9BQU87SUFKakIsT0FBTyxlQUtIO0lBRUosT0FBYSxNQUFNLENBQUMsQ0FBQyxTQUFTLHVCQUF1QixFQUFFLENBQUMsU0FBUyxNQUFNLEVBQ3JFLE1BQU0sRUFBRSxDQUFDLEVBQ1QsTUFBTSxFQUFFLFdBQVcsRUFDbkIsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUMvQixRQUFRLHNCQUFtQiw4Q0FPNUI7SUFFSyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FxQ3BFO0lBRUssZUFBZSxDQUFDLE1BQU0sR0FBRSxNQUFNLEVBQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBa0I1RDtDQUNGIn0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZF9tZXJrbGVfdHJlZV9jYWxjdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvaW5kZXhlZF9tZXJrbGVfdHJlZV9jYWxjdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdELFVBQVUsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLHVCQUF1QjtJQUM3RCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7Q0FDL0I7QUFFRDs7R0FFRztBQUNILHFCQUFhLDJCQUEyQixDQUFDLENBQUMsU0FBUyx1QkFBdUIsRUFBRSxDQUFDLFNBQVMsTUFBTTtJQUV4RixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLE9BQU87SUFKakIsT0FBTyxlQUtIO0lBRUosT0FBYSxNQUFNLENBQUMsQ0FBQyxTQUFTLHVCQUF1QixFQUFFLENBQUMsU0FBUyxNQUFNLEVBQ3JFLE1BQU0sRUFBRSxDQUFDLEVBQ1QsTUFBTSxFQUFFLFdBQVcsRUFDbkIsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUMvQixRQUFRLHNCQUFtQiw4Q0FPNUI7SUFFSyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0F5Q3BFO0lBRUssZUFBZSxDQUFDLE1BQU0sR0FBRSxNQUFNLEVBQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBa0I1RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"indexed_merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree_calculator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,UAAU,mBAAmB,CAAC,CAAC,SAAS,uBAAuB;IAC7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM;IAExF,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO,eAKH;IAEJ,OAAa,MAAM,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,EACrE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC/B,QAAQ,sBAAmB,8CAO5B;IAEK,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAqCpE;IAEK,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5D;CACF"}
1
+ {"version":3,"file":"indexed_merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree_calculator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,UAAU,mBAAmB,CAAC,CAAC,SAAS,uBAAuB;IAC7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM;IAExF,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO,eAKH;IAEJ,OAAa,MAAM,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,EACrE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC/B,QAAQ,sBAAmB,8CAO5B;IAEK,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAyCpE;IAEK,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5D;CACF"}
@@ -34,7 +34,11 @@ import { IndexedMerkleTree } from './indexed_merkle_tree.js';
34
34
  const sorted = values.map((v, i)=>({
35
35
  value: v,
36
36
  index: i
37
- })).sort((a, b)=>Number(toBigIntBE(b.value) - toBigIntBE(a.value)));
37
+ })).sort((a, b)=>{
38
+ const aBigInt = toBigIntBE(a.value);
39
+ const bBigInt = toBigIntBE(b.value);
40
+ return aBigInt < bBigInt ? 1 : aBigInt > bBigInt ? -1 : 0;
41
+ });
38
42
  const indexedLeaves = sorted.map((item, i)=>({
39
43
  leaf: this.factory.fromBuffer(Buffer.concat([
40
44
  item.value,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/foundation",
3
- "version": "0.0.1-commit.3e3d0c9cd",
3
+ "version": "0.0.1-commit.3f5453c7b",
4
4
  "type": "module",
5
5
  "main": "./dest/index.js",
6
6
  "types": "./dest/index.d.ts",
@@ -61,6 +61,7 @@
61
61
  "./eth-address": "./dest/eth-address/index.js",
62
62
  "./eth-signature": "./dest/eth-signature/index.js",
63
63
  "./queue": "./dest/queue/index.js",
64
+ "./fifo": "./dest/fifo/index.js",
64
65
  "./fs": "./dest/fs/index.js",
65
66
  "./buffer": "./dest/buffer/index.js",
66
67
  "./json-rpc": "./dest/json-rpc/index.js",
@@ -144,7 +145,7 @@
144
145
  "testEnvironment": "../../foundation/src/jest/env.mjs"
145
146
  },
146
147
  "dependencies": {
147
- "@aztec/bb.js": "0.0.1-commit.3e3d0c9cd",
148
+ "@aztec/bb.js": "0.0.1-commit.3f5453c7b",
148
149
  "@koa/cors": "^5.0.0",
149
150
  "@noble/curves": "=1.7.0",
150
151
  "@noble/hashes": "^1.6.1",
@@ -85,6 +85,11 @@ CheckpointNumber.isValid = function (value: unknown): value is CheckpointNumber
85
85
  return typeof value === 'number' && Number.isInteger(value) && value >= 0;
86
86
  };
87
87
 
88
+ /** Increments a CheckpointNumber by a given value. */
89
+ CheckpointNumber.add = function (n: CheckpointNumber, increment: number): CheckpointNumber {
90
+ return CheckpointNumber(n + increment);
91
+ };
92
+
88
93
  /** The zero checkpoint value. */
89
94
  CheckpointNumber.ZERO = CheckpointNumber(0);
90
95
 
@@ -73,6 +73,11 @@ SlotNumber.isValid = function (value: unknown): value is SlotNumber {
73
73
  return typeof value === 'number' && Number.isInteger(value) && value >= 0;
74
74
  };
75
75
 
76
+ /** Increments a SlotNumber by a given value. */
77
+ SlotNumber.add = function (sn: SlotNumber, increment: number): SlotNumber {
78
+ return SlotNumber(sn + increment);
79
+ };
80
+
76
81
  /**
77
82
  * The zero slot value.
78
83
  */
@@ -10,6 +10,9 @@ import { bufferToHex } from '../string/index.js';
10
10
  * A class representing a 16 byte Buffer.
11
11
  */
12
12
  export class Buffer16 {
13
+ /** Branding to prevent structural compatibility with Buffer32. */
14
+ declare readonly __brand: 'Buffer16';
15
+
13
16
  /**
14
17
  * The size of the hash in bytes.
15
18
  */
@@ -10,6 +10,9 @@ import { bufferToHex } from '../string/index.js';
10
10
  * A class representing a 32 byte Buffer.
11
11
  */
12
12
  export class Buffer32 {
13
+ /** Branding to prevent structural compatibility with Buffer16. */
14
+ declare readonly __brand: 'Buffer32';
15
+
13
16
  /**
14
17
  * The size of the hash in bytes.
15
18
  */
@@ -315,3 +315,17 @@ export function partition<T>(items: T[], predicate: (item: T) => boolean): [T[],
315
315
  }
316
316
  return [pass, fail];
317
317
  }
318
+
319
+ /** Partitions the given iterable into two arrays based on the predicate. */
320
+ export async function partitionAsync<T>(items: T[], predicate: (item: T) => Promise<boolean>): Promise<[T[], T[]]> {
321
+ const pass: T[] = [];
322
+ const fail: T[] = [];
323
+ for (const item of items) {
324
+ if (await predicate(item)) {
325
+ pass.push(item);
326
+ } else {
327
+ fail.push(item);
328
+ }
329
+ }
330
+ return [pass, fail];
331
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './array.js';
2
+ export * from './lru_set.js';
2
3
  export * from './object.js';
@@ -0,0 +1,115 @@
1
+ /** Node in a doubly-linked list used by {@link LruSet}. */
2
+ type LruNode<T> = {
3
+ value: T;
4
+ prev: LruNode<T> | undefined;
5
+ next: LruNode<T> | undefined;
6
+ };
7
+
8
+ /**
9
+ * A bounded set with Least Recently Used (LRU) eviction.
10
+ * Both {@link has} and {@link add} count as an access and refresh the entry's
11
+ * recency, so items that are actively checked stay in the set longest.
12
+ *
13
+ * Uses a doubly-linked list for O(1) ordering and a Map for O(1) lookup.
14
+ * Head = least recent, tail = most recent.
15
+ */
16
+ export class LruSet<T> {
17
+ /** Map from value to its linked-list node for O(1) lookup. */
18
+ private readonly map = new Map<T, LruNode<T>>();
19
+ private head: LruNode<T> | undefined;
20
+ private tail: LruNode<T> | undefined;
21
+
22
+ constructor(private readonly maxSize: number) {
23
+ if (maxSize < 1) {
24
+ throw new Error('LruSet maxSize must be at least 1');
25
+ }
26
+ }
27
+
28
+ /** Number of entries in the set. */
29
+ get size(): number {
30
+ return this.map.size;
31
+ }
32
+
33
+ /**
34
+ * Returns true if the item is in the set.
35
+ * Refreshes the item's recency so it becomes the most recently used.
36
+ */
37
+ has(item: T): boolean {
38
+ const node = this.map.get(item);
39
+ if (!node) {
40
+ return false;
41
+ }
42
+ this.moveToTail(node);
43
+ return true;
44
+ }
45
+
46
+ /**
47
+ * Adds an item to the set. If the item already exists, refreshes its recency.
48
+ * If the set is at capacity, evicts the least recently used item.
49
+ */
50
+ add(item: T): void {
51
+ const existing = this.map.get(item);
52
+ if (existing) {
53
+ this.moveToTail(existing);
54
+ return;
55
+ }
56
+
57
+ if (this.map.size >= this.maxSize) {
58
+ this.evictHead();
59
+ }
60
+
61
+ const node: LruNode<T> = { value: item, prev: this.tail, next: undefined };
62
+ if (this.tail) {
63
+ this.tail.next = node;
64
+ } else {
65
+ this.head = node;
66
+ }
67
+ this.tail = node;
68
+ this.map.set(item, node);
69
+ }
70
+
71
+ /** Removes all entries from the set. */
72
+ clear(): void {
73
+ this.map.clear();
74
+ this.head = undefined;
75
+ this.tail = undefined;
76
+ }
77
+
78
+ /** Unlinks a node from its current position and relinks it at the tail. */
79
+ private moveToTail(node: LruNode<T>): void {
80
+ if (node === this.tail) {
81
+ return;
82
+ }
83
+
84
+ // Unlink
85
+ if (node.prev) {
86
+ node.prev.next = node.next;
87
+ } else {
88
+ this.head = node.next;
89
+ }
90
+ if (node.next) {
91
+ node.next.prev = node.prev;
92
+ }
93
+
94
+ // Relink at tail
95
+ node.prev = this.tail;
96
+ node.next = undefined;
97
+ if (this.tail) {
98
+ this.tail.next = node;
99
+ }
100
+ this.tail = node;
101
+ }
102
+
103
+ /** Evicts the head (least recently used) node. */
104
+ private evictHead(): void {
105
+ const oldHead = this.head!;
106
+ this.map.delete(oldHead.value);
107
+
108
+ this.head = oldHead.next;
109
+ if (this.head) {
110
+ this.head.prev = undefined;
111
+ } else {
112
+ this.tail = undefined;
113
+ }
114
+ }
115
+ }
@@ -1,7 +1,6 @@
1
1
  export type EnvVar =
2
2
  | 'REGISTRY_CONTRACT_ADDRESS'
3
3
  | 'FEE_ASSET_HANDLER_CONTRACT_ADDRESS'
4
- | 'SLASH_FACTORY_CONTRACT_ADDRESS'
5
4
  | 'ACVM_BINARY_PATH'
6
5
  | 'ACVM_WORKING_DIRECTORY'
7
6
  | 'API_KEY'
@@ -12,6 +11,7 @@ export type EnvVar =
12
11
  | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS'
13
12
  | 'ARCHIVER_BATCH_SIZE'
14
13
  | 'AZTEC_ADMIN_PORT'
14
+ | 'AZTEC_NODE_DEBUG'
15
15
  | 'AZTEC_ADMIN_API_KEY_HASH'
16
16
  | 'AZTEC_DISABLE_ADMIN_API_KEY'
17
17
  | 'AZTEC_RESET_ADMIN_API_KEY'
@@ -23,6 +23,8 @@ export type EnvVar =
23
23
  | 'BB_WORKING_DIRECTORY'
24
24
  | 'BB_NUM_IVC_VERIFIERS'
25
25
  | 'BB_IVC_CONCURRENCY'
26
+ | 'BB_CHONK_VERIFY_MAX_BATCH'
27
+ | 'BB_CHONK_VERIFY_BATCH_CONCURRENCY'
26
28
  | 'BOOTSTRAP_NODES'
27
29
  | 'BLOB_ARCHIVE_API_URL'
28
30
  | 'BLOB_FILE_STORE_URLS'
@@ -92,7 +94,6 @@ export type EnvVar =
92
94
  | 'MNEMONIC'
93
95
  | 'NETWORK'
94
96
  | 'NETWORK_CONFIG_LOCATION'
95
- | 'NO_PXE'
96
97
  | 'USE_GCLOUD_LOGGING'
97
98
  | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
98
99
  | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
@@ -131,6 +132,7 @@ export type EnvVar =
131
132
  | 'P2P_L2_QUEUE_SIZE'
132
133
  | 'P2P_MAX_PEERS'
133
134
  | 'P2P_PEER_CHECK_INTERVAL_MS'
135
+ | 'P2P_PEER_FAILED_BAN_TIME_MS'
134
136
  | 'P2P_PEER_PENALTY_VALUES'
135
137
  | 'P2P_QUERY_FOR_IP'
136
138
  | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS'
@@ -204,6 +206,7 @@ export type EnvVar =
204
206
  | 'SENTINEL_ENABLED'
205
207
  | 'SENTINEL_HISTORY_LENGTH_IN_EPOCHS'
206
208
  | 'SENTINEL_HISTORIC_PROVEN_PERFORMANCE_LENGTH_IN_EPOCHS'
209
+ | 'SEQ_ENABLE_PROPOSER_PIPELINING'
207
210
  | 'SEQ_MAX_TX_PER_BLOCK'
208
211
  | 'SEQ_MAX_TX_PER_CHECKPOINT'
209
212
  | 'SEQ_MIN_TX_PER_BLOCK'
@@ -217,18 +220,19 @@ export type EnvVar =
217
220
  | 'SEQ_PUBLISHER_ADDRESSES'
218
221
  | 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
219
222
  | 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
223
+ | 'PUBLISHER_FUNDING_THRESHOLD'
224
+ | 'PUBLISHER_FUNDING_AMOUNT'
220
225
  | 'SEQ_POLLING_INTERVAL_MS'
221
226
  | 'SEQ_ENFORCE_TIME_TABLE'
222
227
  | 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
223
228
  | 'SEQ_ATTESTATION_PROPAGATION_TIME'
224
229
  | 'SEQ_BLOCK_DURATION_MS'
230
+ | 'SEQ_LAST_BLOCK_DURATION_MS'
225
231
  | 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT'
226
232
  | 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
227
233
  | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
228
234
  | 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
229
235
  | 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT'
230
- | 'SLASH_MIN_PENALTY_PERCENTAGE'
231
- | 'SLASH_MAX_PENALTY_PERCENTAGE'
232
236
  | 'SLASH_VALIDATORS_ALWAYS'
233
237
  | 'SLASH_VALIDATORS_NEVER'
234
238
  | 'SLASH_PRUNE_PENALTY'
@@ -289,7 +293,6 @@ export type EnvVar =
289
293
  | 'VALIDATOR_MAX_TX_PER_CHECKPOINT'
290
294
  | 'VALIDATOR_PRIVATE_KEYS'
291
295
  | 'VALIDATOR_PRIVATE_KEY'
292
- | 'VALIDATOR_REEXECUTE'
293
296
  | 'VALIDATOR_ADDRESSES'
294
297
  | 'ROLLUP_VERSION'
295
298
  | 'WS_BLOCK_CHECK_INTERVAL_MS'
@@ -322,7 +325,7 @@ export type EnvVar =
322
325
  | 'AZTEC_SLASH_AMOUNT_SMALL'
323
326
  | 'AZTEC_SLASH_AMOUNT_MEDIUM'
324
327
  | 'AZTEC_SLASH_AMOUNT_LARGE'
325
- | 'AZTEC_SLASHER_FLAVOR'
328
+ | 'AZTEC_SLASHER_ENABLED'
326
329
  | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
327
330
  | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
328
331
  | 'AZTEC_GOVERNANCE_VOTING_DURATION'
@@ -352,10 +355,11 @@ export type EnvVar =
352
355
  | 'K8S_POD_UID'
353
356
  | 'K8S_NAMESPACE_NAME'
354
357
  | 'ENABLE_VERSION_CHECK'
355
- | 'VALIDATOR_REEXECUTE_DEADLINE_MS'
356
358
  | 'WEB3_SIGNER_URL'
357
359
  | 'SKIP_ARCHIVER_INITIAL_SYNC'
358
360
  | 'BLOB_ALLOW_EMPTY_SOURCES'
361
+ | 'BLOB_PREFER_FILESTORES'
362
+ | 'BLOB_FILE_STORE_TIMEOUT_MS'
359
363
  | 'FISHERMAN_MODE'
360
364
  | 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
361
365
  | 'LEGACY_BLS_CLI'
@@ -59,10 +59,19 @@ export class Aes128 {
59
59
  * @param iv - AES initialization vector.
60
60
  * @param key - Key to decrypt with.
61
61
  * @returns Decrypted data.
62
+ * @throws If the decrypted buffer has invalid PKCS#7 padding.
62
63
  */
63
64
  public async decryptBufferCBC(data: Uint8Array, iv: Uint8Array, key: Uint8Array) {
64
65
  const paddedBuffer = await this.decryptBufferCBCKeepPadding(data, iv, key);
65
- const paddingToRemove = paddedBuffer[paddedBuffer.length - 1];
66
- return paddedBuffer.subarray(0, paddedBuffer.length - paddingToRemove);
66
+ const paddingLen = paddedBuffer[paddedBuffer.length - 1];
67
+ if (paddingLen === 0 || paddingLen > 16) {
68
+ throw new Error(`Invalid PKCS#7 padding length: ${paddingLen}`);
69
+ }
70
+ for (let i = paddedBuffer.length - paddingLen; i < paddedBuffer.length; i++) {
71
+ if (paddedBuffer[i] !== paddingLen) {
72
+ throw new Error('Invalid PKCS#7 padding');
73
+ }
74
+ }
75
+ return paddedBuffer.subarray(0, paddedBuffer.length - paddingLen);
67
76
  }
68
77
  }
@@ -262,26 +262,3 @@ export function decryptBn254KeystoreFromObject(keystore: Bn254Keystore, password
262
262
  throw new Bn254KeystoreError(`Failed to decrypt keystore: ${String(error)}`, error as Error);
263
263
  }
264
264
  }
265
-
266
- /**
267
- * Validates that a decrypted private key matches the public key in the keystore.
268
- *
269
- * @param privateKeyHex - Decrypted private key (0x-prefixed)
270
- * @param expectedPubkey - Expected public key from keystore
271
- * @param computePublicKey - Function to compute public key from private key
272
- * @returns true if keys match, false otherwise
273
- */
274
- export function verifyBn254Keypair(
275
- privateKeyHex: string,
276
- expectedPubkey: string,
277
- computePublicKey: (privateKey: string) => string,
278
- ): boolean {
279
- try {
280
- const computedPubkey = computePublicKey(privateKeyHex);
281
- const normalizedExpected = expectedPubkey.toLowerCase().replace(/^0x/i, '');
282
- const normalizedComputed = computedPubkey.toLowerCase().replace(/^0x/i, '');
283
- return normalizedExpected === normalizedComputed;
284
- } catch {
285
- return false;
286
- }
287
- }
@@ -1,21 +1,35 @@
1
- import { Barretenberg } from '@aztec/bb.js';
1
+ import { Barretenberg, BarretenbergSync } from '@aztec/bb.js';
2
2
 
3
3
  import { Fr } from '../../curves/bn254/field.js';
4
4
  import { type Fieldable, serializeToFields } from '../../serialize/serialize.js';
5
5
 
6
+ const IS_BROWSER = typeof self !== 'undefined';
7
+
8
+ async function poseidon2HashFields(inputFields: Fr[]): Promise<Fr> {
9
+ if (IS_BROWSER) {
10
+ await BarretenbergSync.initSingleton();
11
+ const api = BarretenbergSync.getSingleton();
12
+ const response = api.poseidon2Hash({
13
+ inputs: inputFields.map(i => i.toBuffer()),
14
+ });
15
+ return Fr.fromBuffer(Buffer.from(response.hash));
16
+ } else {
17
+ await Barretenberg.initSingleton();
18
+ const api = Barretenberg.getSingleton();
19
+ const response = await api.poseidon2Hash({
20
+ inputs: inputFields.map(i => i.toBuffer()),
21
+ });
22
+ return Fr.fromBuffer(Buffer.from(response.hash));
23
+ }
24
+ }
25
+
6
26
  /**
7
27
  * Create a poseidon hash (field) from an array of input fields.
8
28
  * @param input - The input fields to hash.
9
29
  * @returns The poseidon hash.
10
30
  */
11
- export async function poseidon2Hash(input: Fieldable[]): Promise<Fr> {
12
- const inputFields = serializeToFields(input);
13
- await Barretenberg.initSingleton();
14
- const api = Barretenberg.getSingleton();
15
- const response = await api.poseidon2Hash({
16
- inputs: inputFields.map(i => i.toBuffer()),
17
- });
18
- return Fr.fromBuffer(Buffer.from(response.hash));
31
+ export function poseidon2Hash(input: Fieldable[]): Promise<Fr> {
32
+ return poseidon2HashFields(serializeToFields(input));
19
33
  }
20
34
 
21
35
  /**
@@ -24,15 +38,10 @@ export async function poseidon2Hash(input: Fieldable[]): Promise<Fr> {
24
38
  * @param separator - The domain separator.
25
39
  * @returns The poseidon hash.
26
40
  */
27
- export async function poseidon2HashWithSeparator(input: Fieldable[], separator: number): Promise<Fr> {
41
+ export function poseidon2HashWithSeparator(input: Fieldable[], separator: number): Promise<Fr> {
28
42
  const inputFields = serializeToFields(input);
29
43
  inputFields.unshift(new Fr(separator));
30
- await Barretenberg.initSingleton();
31
- const api = Barretenberg.getSingleton();
32
- const response = await api.poseidon2Hash({
33
- inputs: inputFields.map(i => i.toBuffer()),
34
- });
35
- return Fr.fromBuffer(Buffer.from(response.hash));
44
+ return poseidon2HashFields(inputFields);
36
45
  }
37
46
 
38
47
  /**
@@ -42,19 +51,24 @@ export async function poseidon2HashWithSeparator(input: Fieldable[], separator:
42
51
  */
43
52
  export async function poseidon2Permutation(input: Fieldable[]): Promise<Fr[]> {
44
53
  const inputFields = serializeToFields(input);
45
- // We'd like this assertion but it's not possible to use it in the browser.
46
- // assert(input.length === 4, 'Input state must be of size 4');
47
- await Barretenberg.initSingleton();
48
- const api = Barretenberg.getSingleton();
49
- const response = await api.poseidon2Permutation({
50
- inputs: inputFields.map(i => i.toBuffer()),
51
- });
52
- // We'd like this assertion but it's not possible to use it in the browser.
53
- // assert(response.outputs.length === 4, 'Output state must be of size 4');
54
- return response.outputs.map(o => Fr.fromBuffer(Buffer.from(o)));
54
+ if (IS_BROWSER) {
55
+ await BarretenbergSync.initSingleton();
56
+ const api = BarretenbergSync.getSingleton();
57
+ const response = api.poseidon2Permutation({
58
+ inputs: inputFields.map(i => i.toBuffer()),
59
+ });
60
+ return response.outputs.map(o => Fr.fromBuffer(Buffer.from(o)));
61
+ } else {
62
+ await Barretenberg.initSingleton();
63
+ const api = Barretenberg.getSingleton();
64
+ const response = await api.poseidon2Permutation({
65
+ inputs: inputFields.map(i => i.toBuffer()),
66
+ });
67
+ return response.outputs.map(o => Fr.fromBuffer(Buffer.from(o)));
68
+ }
55
69
  }
56
70
 
57
- export async function poseidon2HashBytes(input: Buffer): Promise<Fr> {
71
+ export function poseidon2HashBytes(input: Buffer): Promise<Fr> {
58
72
  const inputFields = [];
59
73
  for (let i = 0; i < input.length; i += 31) {
60
74
  const fieldBytes = Buffer.alloc(32, 0);
@@ -65,11 +79,5 @@ export async function poseidon2HashBytes(input: Buffer): Promise<Fr> {
65
79
  inputFields.push(Fr.fromBuffer(fieldBytes));
66
80
  }
67
81
 
68
- await Barretenberg.initSingleton();
69
- const api = Barretenberg.getSingleton();
70
- const response = await api.poseidon2Hash({
71
- inputs: inputFields.map(i => i.toBuffer()),
72
- });
73
-
74
- return Fr.fromBuffer(Buffer.from(response.hash));
82
+ return poseidon2HashFields(inputFields);
75
83
  }
@@ -65,7 +65,7 @@ export class Point {
65
65
  }
66
66
 
67
67
  /**
68
- * Generate a random Point instance.
68
+ * Generate a random Point instance that is on the curve.
69
69
  *
70
70
  * @returns A randomly generated Point instance.
71
71
  */
@@ -125,9 +125,12 @@ export class Point {
125
125
  }
126
126
 
127
127
  /**
128
- * Returns the contents of the point as an array of 2 fields.
129
- * @returns The point as an array of 2 fields
128
+ * Returns the contents of the point as an array of 3 fields.
129
+ * @returns The point as an array of 3 fields
130
130
  */
131
+ // TODO(F-553): Once we take the breaking change and drop the custom Noir `Point` wrapper in
132
+ // `noir-projects/noir-protocol-circuits/crates/types/src/point.nr`, revert this to serialize as `[x, y]` (2 fields)
133
+ // and drop the `is_infinite` flag from `fromFields` / `toNoirStruct` below.
131
134
  toFields() {
132
135
  return [this.x, this.y, new Fr(this.isInfinite)];
133
136
  }