@aztec/foundation 0.0.1-commit.42ee6df9b → 0.0.1-commit.431c48d

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 (238) hide show
  1. package/dest/bigint-buffer/index.d.ts +1 -1
  2. package/dest/bigint-buffer/index.d.ts.map +1 -1
  3. package/dest/bigint-buffer/index.js +6 -1
  4. package/dest/branded-types/block_number.d.ts +3 -3
  5. package/dest/branded-types/block_number.d.ts.map +1 -1
  6. package/dest/branded-types/block_number.js +15 -4
  7. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  8. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  9. package/dest/branded-types/buffer32_hash.js +12 -0
  10. package/dest/branded-types/checkpoint_number.d.ts +9 -3
  11. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  12. package/dest/branded-types/checkpoint_number.js +11 -0
  13. package/dest/branded-types/epoch.d.ts +2 -2
  14. package/dest/branded-types/epoch.d.ts.map +1 -1
  15. package/dest/branded-types/index.d.ts +2 -1
  16. package/dest/branded-types/index.d.ts.map +1 -1
  17. package/dest/branded-types/index.js +1 -0
  18. package/dest/branded-types/index_within_checkpoint.d.ts +2 -2
  19. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
  20. package/dest/branded-types/slot.d.ts +2 -2
  21. package/dest/branded-types/slot.d.ts.map +1 -1
  22. package/dest/buffer/buffer16.d.ts +3 -3
  23. package/dest/buffer/buffer16.d.ts.map +1 -1
  24. package/dest/buffer/buffer32.d.ts +28 -63
  25. package/dest/buffer/buffer32.d.ts.map +1 -1
  26. package/dest/buffer/buffer32.js +29 -63
  27. package/dest/collection/array.d.ts +9 -1
  28. package/dest/collection/array.d.ts.map +1 -1
  29. package/dest/collection/array.js +18 -0
  30. package/dest/collection/index.d.ts +2 -1
  31. package/dest/collection/index.d.ts.map +1 -1
  32. package/dest/collection/index.js +1 -0
  33. package/dest/collection/lru_map.d.ts +41 -0
  34. package/dest/collection/lru_map.d.ts.map +1 -0
  35. package/dest/collection/lru_map.js +119 -0
  36. package/dest/committable/committable.js +1 -1
  37. package/dest/config/env_var.d.ts +2 -2
  38. package/dest/config/env_var.d.ts.map +1 -1
  39. package/dest/config/index.d.ts +67 -37
  40. package/dest/config/index.d.ts.map +1 -1
  41. package/dest/config/index.js +72 -71
  42. package/dest/config/network_config.d.ts +11 -55
  43. package/dest/config/network_config.d.ts.map +1 -1
  44. package/dest/config/network_name.d.ts +2 -2
  45. package/dest/config/network_name.d.ts.map +1 -1
  46. package/dest/config/network_name.js +1 -3
  47. package/dest/config/secret_value.d.ts +2 -2
  48. package/dest/config/secret_value.d.ts.map +1 -1
  49. package/dest/crypto/bls/bn254_keystore.d.ts +10 -168
  50. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  51. package/dest/crypto/bls/bn254_keystore.js +22 -17
  52. package/dest/crypto/schnorr/index.d.ts +8 -7
  53. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  54. package/dest/crypto/schnorr/index.js +6 -6
  55. package/dest/crypto/schnorr/signature.d.ts +9 -29
  56. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  57. package/dest/crypto/schnorr/signature.js +20 -36
  58. package/dest/curves/bls12/field.d.ts +3 -3
  59. package/dest/curves/bls12/field.d.ts.map +1 -1
  60. package/dest/curves/bls12/field.js +0 -5
  61. package/dest/curves/bls12/point.d.ts +2 -2
  62. package/dest/curves/bls12/point.d.ts.map +1 -1
  63. package/dest/curves/bn254/field.d.ts +23 -19
  64. package/dest/curves/bn254/field.d.ts.map +1 -1
  65. package/dest/curves/bn254/field.js +23 -17
  66. package/dest/curves/grumpkin/point.d.ts +13 -27
  67. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  68. package/dest/curves/grumpkin/point.js +28 -42
  69. package/dest/eth-address/index.d.ts +2 -2
  70. package/dest/eth-address/index.d.ts.map +1 -1
  71. package/dest/eth-address/index.js +0 -3
  72. package/dest/eth-signature/eth_signature.d.ts +2 -2
  73. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  74. package/dest/fifo_set/fifo_set.d.ts +15 -0
  75. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  76. package/dest/fifo_set/fifo_set.js +39 -0
  77. package/dest/fifo_set/index.d.ts +2 -0
  78. package/dest/fifo_set/index.d.ts.map +1 -0
  79. package/dest/fifo_set/index.js +1 -0
  80. package/dest/iterable/first.d.ts +8 -0
  81. package/dest/iterable/first.d.ts.map +1 -0
  82. package/dest/iterable/first.js +11 -0
  83. package/dest/iterable/index.d.ts +2 -1
  84. package/dest/iterable/index.d.ts.map +1 -1
  85. package/dest/iterable/index.js +1 -0
  86. package/dest/json-rpc/client/fetch.d.ts +8 -3
  87. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  88. package/dest/json-rpc/client/fetch.js +8 -5
  89. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  90. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  91. package/dest/json-rpc/client/safe_json_rpc_client.js +2 -2
  92. package/dest/json-rpc/client/undici.d.ts +14 -3
  93. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  94. package/dest/json-rpc/client/undici.js +47 -14
  95. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  96. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  97. package/dest/json-rpc/fixtures/test_state.js +57 -17
  98. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +49 -11
  99. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  100. package/dest/json-rpc/server/safe_json_rpc_server.js +159 -40
  101. package/dest/log/aws-logger-config.d.ts +8 -0
  102. package/dest/log/aws-logger-config.d.ts.map +1 -0
  103. package/dest/log/aws-logger-config.js +55 -0
  104. package/dest/log/pino-logger.d.ts +1 -1
  105. package/dest/log/pino-logger.d.ts.map +1 -1
  106. package/dest/log/pino-logger.js +27 -7
  107. package/dest/noir/noir_package_config.d.ts +19 -104
  108. package/dest/noir/noir_package_config.d.ts.map +1 -1
  109. package/dest/noir/noir_package_config.js +1 -1
  110. package/dest/promise/running-promise.d.ts +8 -2
  111. package/dest/promise/running-promise.d.ts.map +1 -1
  112. package/dest/promise/running-promise.js +17 -5
  113. package/dest/promise/utils.d.ts +14 -1
  114. package/dest/promise/utils.d.ts.map +1 -1
  115. package/dest/promise/utils.js +20 -0
  116. package/dest/queue/batch_queue.d.ts +1 -1
  117. package/dest/queue/batch_queue.d.ts.map +1 -1
  118. package/dest/queue/batch_queue.js +1 -0
  119. package/dest/retry/index.d.ts +20 -3
  120. package/dest/retry/index.d.ts.map +1 -1
  121. package/dest/retry/index.js +23 -2
  122. package/dest/schemas/api.d.ts +11 -9
  123. package/dest/schemas/api.d.ts.map +1 -1
  124. package/dest/schemas/api.js +7 -1
  125. package/dest/schemas/parse.d.ts +4 -4
  126. package/dest/schemas/parse.d.ts.map +1 -1
  127. package/dest/schemas/parse.js +6 -5
  128. package/dest/schemas/schemas.d.ts +15 -15
  129. package/dest/schemas/types.d.ts +3 -3
  130. package/dest/schemas/types.d.ts.map +1 -1
  131. package/dest/schemas/utils.d.ts +7 -11
  132. package/dest/schemas/utils.d.ts.map +1 -1
  133. package/dest/schemas/utils.js +2 -18
  134. package/dest/serialize/buffer_reader.d.ts +1 -1
  135. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  136. package/dest/serialize/buffer_reader.js +5 -0
  137. package/dest/serialize/buffer_sink.d.ts +134 -0
  138. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  139. package/dest/serialize/buffer_sink.js +297 -0
  140. package/dest/serialize/index.d.ts +2 -1
  141. package/dest/serialize/index.d.ts.map +1 -1
  142. package/dest/serialize/index.js +1 -0
  143. package/dest/serialize/serialize.d.ts +1 -32
  144. package/dest/serialize/serialize.d.ts.map +1 -1
  145. package/dest/serialize/serialize.js +0 -21
  146. package/dest/string/index.js +1 -1
  147. package/dest/testing/files/index.d.ts +2 -3
  148. package/dest/testing/files/index.d.ts.map +1 -1
  149. package/dest/testing/files/index.js +1 -2
  150. package/dest/timer/index.d.ts +2 -2
  151. package/dest/timer/index.d.ts.map +1 -1
  152. package/dest/timer/index.js +1 -1
  153. package/dest/timer/timeout.d.ts +3 -1
  154. package/dest/timer/timeout.d.ts.map +1 -1
  155. package/dest/timer/timeout.js +26 -0
  156. package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
  157. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
  158. package/dest/trees/balanced_merkle_tree_root.js +2 -3
  159. package/dest/trees/hasher.d.ts +3 -2
  160. package/dest/trees/hasher.d.ts.map +1 -1
  161. package/dest/trees/hasher.js +5 -5
  162. package/dest/trees/membership_witness.d.ts +2 -6
  163. package/dest/trees/membership_witness.d.ts.map +1 -1
  164. package/dest/trees/membership_witness.js +0 -9
  165. package/dest/trees/merkle_tree_calculator.d.ts +4 -2
  166. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  167. package/dest/trees/merkle_tree_calculator.js +1 -5
  168. package/dest/trees/sibling_path.d.ts +13 -14
  169. package/dest/trees/sibling_path.d.ts.map +1 -1
  170. package/dest/trees/sibling_path.js +23 -28
  171. package/dest/trees/unbalanced_merkle_tree_root.d.ts +2 -3
  172. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -1
  173. package/dest/trees/unbalanced_merkle_tree_root.js +2 -3
  174. package/dest/types/index.d.ts +23 -1
  175. package/dest/types/index.d.ts.map +1 -1
  176. package/dest/types/index.js +15 -0
  177. package/package.json +5 -4
  178. package/src/bigint-buffer/index.ts +6 -1
  179. package/src/branded-types/block_number.ts +20 -2
  180. package/src/branded-types/buffer32_hash.ts +38 -0
  181. package/src/branded-types/checkpoint_number.ts +16 -1
  182. package/src/branded-types/epoch.ts +1 -1
  183. package/src/branded-types/index.ts +1 -0
  184. package/src/branded-types/index_within_checkpoint.ts +1 -1
  185. package/src/branded-types/slot.ts +1 -1
  186. package/src/buffer/buffer16.ts +2 -2
  187. package/src/buffer/buffer32.ts +39 -71
  188. package/src/collection/array.ts +20 -0
  189. package/src/collection/index.ts +1 -0
  190. package/src/collection/lru_map.ts +143 -0
  191. package/src/committable/committable.ts +1 -1
  192. package/src/config/env_var.ts +50 -22
  193. package/src/config/index.ts +143 -122
  194. package/src/config/network_name.ts +2 -5
  195. package/src/config/secret_value.ts +1 -1
  196. package/src/crypto/bls/bn254_keystore.ts +33 -20
  197. package/src/crypto/schnorr/index.ts +9 -8
  198. package/src/crypto/schnorr/signature.ts +17 -46
  199. package/src/curves/bls12/field.ts +0 -7
  200. package/src/curves/bn254/field.ts +35 -34
  201. package/src/curves/grumpkin/point.ts +22 -39
  202. package/src/eth-address/index.ts +0 -4
  203. package/src/fifo_set/fifo_set.ts +52 -0
  204. package/src/fifo_set/index.ts +1 -0
  205. package/src/iterable/first.ts +14 -0
  206. package/src/iterable/index.ts +1 -0
  207. package/src/json-rpc/client/fetch.ts +16 -3
  208. package/src/json-rpc/client/safe_json_rpc_client.ts +2 -2
  209. package/src/json-rpc/client/undici.ts +54 -12
  210. package/src/json-rpc/fixtures/test_state.ts +10 -10
  211. package/src/json-rpc/server/safe_json_rpc_server.ts +204 -47
  212. package/src/log/aws-logger-config.ts +32 -0
  213. package/src/log/pino-logger.ts +30 -5
  214. package/src/noir/noir_package_config.ts +32 -20
  215. package/src/promise/running-promise.ts +20 -7
  216. package/src/promise/utils.ts +31 -0
  217. package/src/queue/batch_queue.ts +1 -0
  218. package/src/retry/index.ts +36 -4
  219. package/src/schemas/api.ts +21 -24
  220. package/src/schemas/parse.ts +9 -6
  221. package/src/schemas/schemas.ts +4 -4
  222. package/src/schemas/types.ts +2 -2
  223. package/src/schemas/utils.ts +4 -38
  224. package/src/serialize/buffer_reader.ts +5 -0
  225. package/src/serialize/buffer_sink.ts +350 -0
  226. package/src/serialize/index.ts +1 -0
  227. package/src/serialize/serialize.ts +0 -50
  228. package/src/string/index.ts +1 -1
  229. package/src/testing/files/index.ts +1 -2
  230. package/src/timer/index.ts +1 -1
  231. package/src/timer/timeout.ts +31 -0
  232. package/src/trees/balanced_merkle_tree_root.ts +2 -5
  233. package/src/trees/hasher.ts +6 -3
  234. package/src/trees/membership_witness.ts +0 -8
  235. package/src/trees/merkle_tree_calculator.ts +4 -10
  236. package/src/trees/sibling_path.ts +24 -30
  237. package/src/trees/unbalanced_merkle_tree_root.ts +2 -5
  238. package/src/types/index.ts +47 -0
@@ -29,11 +29,58 @@ export function isErrorClass<T extends Error>(value: unknown, errorClass: new (.
29
29
  return value instanceof errorClass || (value instanceof Error && value.name === errorClass.name);
30
30
  }
31
31
 
32
+ const MAX_ERR_DEPTH = 10;
33
+
34
+ /** Returns the first error in the cause chain matching the given error class. */
35
+ export function getErrorCause<T extends Error>(err: unknown, errorClass: new (...args: any[]) => T): T | undefined {
36
+ let current = err;
37
+ for (let i = 0; current !== undefined && current !== null && i < MAX_ERR_DEPTH; i++) {
38
+ if (isErrorClass(current, errorClass)) {
39
+ return current;
40
+ }
41
+
42
+ if (typeof current === 'object' && Object.hasOwn(current, 'cause')) {
43
+ current = (current as { cause: unknown }).cause;
44
+ } else {
45
+ return undefined;
46
+ }
47
+ }
48
+ return undefined;
49
+ }
50
+
32
51
  /** Resolves a record-like type. Lifted from viem. */
33
52
  export type Prettify<T> = {
34
53
  [K in keyof T]: T[K];
35
54
  } & {};
36
55
 
56
+ /** Returns a type T based on a flag: T if true, undefined if false, optional otherwise. */
57
+ export type DefineIfFlag<Opts, Key extends keyof Opts, T> = Opts extends {
58
+ [K in Key]: true;
59
+ }
60
+ ? T
61
+ : Opts extends { [K in Key]: false }
62
+ ? never
63
+ : Opts extends { [K in Key]?: boolean }
64
+ ? T | undefined
65
+ : never;
66
+
67
+ /** Returns a type with fields conditionally required based on a flag */
68
+ export type PickIfFlag<
69
+ OptsSchema,
70
+ Opts extends OptsSchema,
71
+ Key extends keyof OptsSchema,
72
+ Field extends object,
73
+ > = Opts extends { [K in Key]: true }
74
+ ? Field
75
+ : Opts extends { [K in Key]: false }
76
+ ? {}
77
+ : Opts extends { [K in Key]?: boolean }
78
+ ? Partial<Field>
79
+ : {};
80
+
81
+ /** Picks only the defined (non-undefined) properties of a type. */
82
+ export type PickDefined<T> = Prettify<Pick<T, { [K in keyof T]: T[K] extends undefined ? never : K }[keyof T]>>;
83
+
37
84
  /**
38
85
  * Type-safe Event Emitter type
39
86
  * @example