@aztec/foundation 0.0.0-test.0 → 0.0.1-commit.001888fc

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 (721) hide show
  1. package/dest/array/array.d.ts +6 -9
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +11 -11
  4. package/dest/array/index.d.ts +2 -1
  5. package/dest/array/index.d.ts.map +1 -1
  6. package/dest/array/index.js +1 -0
  7. package/dest/array/sorted_array.d.ts +15 -0
  8. package/dest/array/sorted_array.d.ts.map +1 -0
  9. package/dest/array/sorted_array.js +109 -0
  10. package/dest/async-map/index.d.ts +1 -1
  11. package/dest/async-pool/index.d.ts +1 -1
  12. package/dest/async-pool/index.d.ts.map +1 -1
  13. package/dest/async-pool/index.js +1 -0
  14. package/dest/bigint/index.d.ts +7 -0
  15. package/dest/bigint/index.d.ts.map +1 -0
  16. package/dest/bigint/index.js +15 -0
  17. package/dest/bigint-buffer/index.d.ts +1 -3
  18. package/dest/bigint-buffer/index.d.ts.map +1 -1
  19. package/dest/branded-types/block_number.d.ts +56 -0
  20. package/dest/branded-types/block_number.d.ts.map +1 -0
  21. package/dest/branded-types/block_number.js +78 -0
  22. package/dest/branded-types/checkpoint_number.d.ts +54 -0
  23. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  24. package/dest/branded-types/checkpoint_number.js +77 -0
  25. package/dest/branded-types/epoch.d.ts +42 -0
  26. package/dest/branded-types/epoch.d.ts.map +1 -0
  27. package/dest/branded-types/epoch.js +59 -0
  28. package/dest/branded-types/index.d.ts +7 -0
  29. package/dest/branded-types/index.d.ts.map +1 -0
  30. package/dest/branded-types/index.js +5 -0
  31. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  32. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  33. package/dest/branded-types/index_within_checkpoint.js +59 -0
  34. package/dest/branded-types/slot.d.ts +42 -0
  35. package/dest/branded-types/slot.d.ts.map +1 -0
  36. package/dest/branded-types/slot.js +59 -0
  37. package/dest/branded-types/types.d.ts +5 -0
  38. package/dest/branded-types/types.d.ts.map +1 -0
  39. package/dest/branded-types/types.js +1 -0
  40. package/dest/buffer/buffer16.d.ts +80 -0
  41. package/dest/buffer/buffer16.d.ts.map +1 -0
  42. package/dest/buffer/buffer16.js +102 -0
  43. package/dest/buffer/buffer32.d.ts +5 -9
  44. package/dest/buffer/buffer32.d.ts.map +1 -1
  45. package/dest/buffer/buffer32.js +9 -7
  46. package/dest/buffer/index.d.ts +3 -1
  47. package/dest/buffer/index.d.ts.map +1 -1
  48. package/dest/buffer/index.js +2 -0
  49. package/dest/buffer/utils.d.ts +3 -0
  50. package/dest/buffer/utils.d.ts.map +1 -0
  51. package/dest/buffer/utils.js +7 -0
  52. package/dest/collection/array.d.ts +28 -4
  53. package/dest/collection/array.d.ts.map +1 -1
  54. package/dest/collection/array.js +108 -3
  55. package/dest/collection/index.d.ts +1 -1
  56. package/dest/collection/object.d.ts +17 -1
  57. package/dest/collection/object.d.ts.map +1 -1
  58. package/dest/collection/object.js +25 -0
  59. package/dest/committable/committable.d.ts +1 -1
  60. package/dest/committable/committable.d.ts.map +1 -1
  61. package/dest/committable/index.d.ts +1 -1
  62. package/dest/config/env_var.d.ts +2 -2
  63. package/dest/config/env_var.d.ts.map +1 -1
  64. package/dest/config/index.d.ts +62 -4
  65. package/dest/config/index.d.ts.map +1 -1
  66. package/dest/config/index.js +158 -12
  67. package/dest/config/network_config.d.ts +72 -0
  68. package/dest/config/network_config.d.ts.map +1 -0
  69. package/dest/config/network_config.js +14 -0
  70. package/dest/config/network_name.d.ts +3 -0
  71. package/dest/config/network_name.d.ts.map +1 -0
  72. package/dest/config/network_name.js +21 -0
  73. package/dest/config/parse-env.d.ts +3 -0
  74. package/dest/config/parse-env.d.ts.map +1 -0
  75. package/dest/config/parse-env.js +7 -0
  76. package/dest/config/secret_value.d.ts +28 -0
  77. package/dest/config/secret_value.d.ts.map +1 -0
  78. package/dest/config/secret_value.js +36 -0
  79. package/dest/crypto/aes128/index.d.ts +3 -5
  80. package/dest/crypto/aes128/index.d.ts.map +1 -1
  81. package/dest/crypto/aes128/index.js +19 -6
  82. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  83. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  84. package/dest/crypto/bls/bn254_keystore.js +218 -0
  85. package/dest/crypto/bls/index.d.ts +13 -0
  86. package/dest/crypto/bls/index.d.ts.map +1 -0
  87. package/dest/crypto/bls/index.js +87 -0
  88. package/dest/crypto/bn254/index.d.ts +39 -0
  89. package/dest/crypto/bn254/index.d.ts.map +1 -0
  90. package/dest/crypto/bn254/index.js +56 -0
  91. package/dest/crypto/ecdsa/index.d.ts +3 -3
  92. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  93. package/dest/crypto/ecdsa/index.js +62 -48
  94. package/dest/crypto/ecdsa/signature.d.ts +3 -5
  95. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  96. package/dest/crypto/ecdsa/signature.js +2 -2
  97. package/dest/crypto/grumpkin/index.d.ts +10 -15
  98. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  99. package/dest/crypto/grumpkin/index.js +61 -55
  100. package/dest/crypto/keccak/index.d.ts +3 -5
  101. package/dest/crypto/keccak/index.d.ts.map +1 -1
  102. package/dest/crypto/keys/index.d.ts +2 -4
  103. package/dest/crypto/keys/index.d.ts.map +1 -1
  104. package/dest/crypto/keys/index.js +8 -5
  105. package/dest/crypto/pedersen/index.d.ts +1 -1
  106. package/dest/crypto/pedersen/pedersen.noble.d.ts +3 -5
  107. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
  108. package/dest/crypto/pedersen/pedersen.wasm.d.ts +4 -6
  109. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  110. package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
  111. package/dest/crypto/poseidon/index.d.ts +2 -5
  112. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  113. package/dest/crypto/poseidon/index.js +27 -21
  114. package/dest/crypto/random/index.d.ts +2 -4
  115. package/dest/crypto/random/index.d.ts.map +1 -1
  116. package/dest/crypto/random/index.js +2 -34
  117. package/dest/crypto/random/randomness_singleton.d.ts +4 -5
  118. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  119. package/dest/crypto/random/randomness_singleton.js +5 -5
  120. package/dest/crypto/schnorr/index.d.ts +3 -2
  121. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  122. package/dest/crypto/schnorr/index.js +30 -38
  123. package/dest/crypto/schnorr/signature.d.ts +5 -7
  124. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  125. package/dest/crypto/schnorr/signature.js +2 -2
  126. package/dest/crypto/secp256k1/index.d.ts +5 -7
  127. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  128. package/dest/crypto/secp256k1/index.js +23 -18
  129. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  130. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  131. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  132. package/dest/crypto/secp256k1-signer/utils.d.ts +67 -5
  133. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  134. package/dest/crypto/secp256k1-signer/utils.js +118 -6
  135. package/dest/crypto/serialize.d.ts +5 -7
  136. package/dest/crypto/serialize.d.ts.map +1 -1
  137. package/dest/crypto/sha256/index.d.ts +23 -6
  138. package/dest/crypto/sha256/index.d.ts.map +1 -1
  139. package/dest/crypto/sha256/index.js +43 -1
  140. package/dest/crypto/sha512/index.d.ts +3 -5
  141. package/dest/crypto/sha512/index.d.ts.map +1 -1
  142. package/dest/crypto/sha512/index.js +1 -1
  143. package/dest/crypto/signature/index.d.ts +2 -4
  144. package/dest/crypto/signature/index.d.ts.map +1 -1
  145. package/dest/crypto/sync/index.d.ts +1 -1
  146. package/dest/crypto/sync/index.js +1 -1
  147. package/dest/crypto/sync/pedersen/index.d.ts +4 -6
  148. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  149. package/dest/crypto/sync/pedersen/index.js +18 -11
  150. package/dest/crypto/sync/poseidon/index.d.ts +2 -5
  151. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  152. package/dest/crypto/sync/poseidon/index.js +23 -16
  153. package/dest/curves/bls12/field.d.ts +148 -0
  154. package/dest/curves/bls12/field.d.ts.map +1 -0
  155. package/dest/curves/bls12/field.js +362 -0
  156. package/dest/curves/bls12/index.d.ts +3 -0
  157. package/dest/curves/bls12/index.d.ts.map +1 -0
  158. package/dest/curves/bls12/index.js +2 -0
  159. package/dest/curves/bls12/point.d.ts +229 -0
  160. package/dest/curves/bls12/point.d.ts.map +1 -0
  161. package/dest/curves/bls12/point.js +400 -0
  162. package/dest/curves/bn254/field.d.ts +181 -0
  163. package/dest/curves/bn254/field.d.ts.map +1 -0
  164. package/dest/{fields/fields.js → curves/bn254/field.js} +93 -62
  165. package/dest/curves/bn254/index.d.ts +3 -0
  166. package/dest/curves/bn254/index.d.ts.map +1 -0
  167. package/dest/curves/bn254/index.js +2 -0
  168. package/dest/curves/bn254/point.d.ts +54 -0
  169. package/dest/curves/bn254/point.d.ts.map +1 -0
  170. package/dest/curves/bn254/point.js +143 -0
  171. package/dest/curves/grumpkin/index.d.ts +10 -0
  172. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  173. package/dest/curves/grumpkin/index.js +3 -0
  174. package/dest/{fields → curves/grumpkin}/point.d.ts +14 -7
  175. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  176. package/dest/{fields → curves/grumpkin}/point.js +27 -10
  177. package/dest/decorators/index.d.ts +1 -1
  178. package/dest/decorators/memoize.d.ts +1 -1
  179. package/dest/decorators/memoize.d.ts.map +1 -1
  180. package/dest/error/index.d.ts +1 -1
  181. package/dest/eth-address/index.d.ts +18 -9
  182. package/dest/eth-address/index.d.ts.map +1 -1
  183. package/dest/eth-address/index.js +31 -2
  184. package/dest/eth-signature/eth_signature.d.ts +18 -15
  185. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  186. package/dest/eth-signature/eth_signature.js +37 -18
  187. package/dest/eth-signature/index.d.ts +1 -1
  188. package/dest/fs/index.d.ts +2 -1
  189. package/dest/fs/index.d.ts.map +1 -1
  190. package/dest/fs/index.js +1 -0
  191. package/dest/fs/run_in_dir.d.ts +1 -1
  192. package/dest/fs/try_rm_dir.d.ts +3 -0
  193. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  194. package/dest/fs/try_rm_dir.js +16 -0
  195. package/dest/iterable/all.d.ts +1 -1
  196. package/dest/iterable/filter.d.ts +1 -1
  197. package/dest/iterable/filter.js +1 -1
  198. package/dest/iterable/index.d.ts +1 -1
  199. package/dest/iterable/isAsyncIt.d.ts +1 -1
  200. package/dest/iterable/map.d.ts +1 -1
  201. package/dest/iterable/map.js +1 -1
  202. package/dest/iterable/peek.d.ts +1 -1
  203. package/dest/iterable/sort.d.ts +1 -1
  204. package/dest/iterable/take.d.ts +1 -1
  205. package/dest/iterable/toArray.d.ts +1 -1
  206. package/dest/iterator/filter.d.ts +3 -0
  207. package/dest/iterator/filter.d.ts.map +1 -0
  208. package/dest/iterator/filter.js +7 -0
  209. package/dest/iterator/index.d.ts +2 -0
  210. package/dest/iterator/index.d.ts.map +1 -0
  211. package/dest/iterator/index.js +1 -0
  212. package/dest/jest/env.js +48 -0
  213. package/dest/jest/setup.js +28 -1
  214. package/dest/jest/setupAfterEnv.js +3 -0
  215. package/dest/json-rpc/client/fetch.d.ts +3 -3
  216. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  217. package/dest/json-rpc/client/fetch.js +16 -30
  218. package/dest/json-rpc/client/index.d.ts +1 -1
  219. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +11 -4
  220. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  221. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  222. package/dest/json-rpc/client/undici.d.ts +1 -1
  223. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  224. package/dest/json-rpc/client/undici.js +27 -11
  225. package/dest/json-rpc/convert.d.ts +3 -10
  226. package/dest/json-rpc/convert.d.ts.map +1 -1
  227. package/dest/json-rpc/convert.js +1 -9
  228. package/dest/json-rpc/errors.d.ts +4 -0
  229. package/dest/json-rpc/errors.d.ts.map +1 -0
  230. package/dest/json-rpc/errors.js +6 -0
  231. package/dest/json-rpc/fixtures/class_a.d.ts +6 -4
  232. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  233. package/dest/json-rpc/fixtures/class_b.d.ts +6 -4
  234. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  235. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  236. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  237. package/dest/json-rpc/index.d.ts +3 -2
  238. package/dest/json-rpc/index.d.ts.map +1 -1
  239. package/dest/json-rpc/index.js +2 -1
  240. package/dest/json-rpc/js_utils.d.ts +1 -1
  241. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  242. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  243. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  244. package/dest/json-rpc/server/api_key_auth.js +57 -0
  245. package/dest/json-rpc/server/index.d.ts +2 -1
  246. package/dest/json-rpc/server/index.d.ts.map +1 -1
  247. package/dest/json-rpc/server/index.js +1 -0
  248. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +22 -23
  249. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  250. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  251. package/dest/json-rpc/test/index.d.ts +1 -1
  252. package/dest/json-rpc/test/integration.d.ts +2 -3
  253. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  254. package/dest/log/bigint-utils.d.ts +5 -0
  255. package/dest/log/bigint-utils.d.ts.map +1 -0
  256. package/dest/log/bigint-utils.js +21 -0
  257. package/dest/log/console.d.ts +1 -1
  258. package/dest/log/console.d.ts.map +1 -1
  259. package/dest/log/gcloud-logger-config.d.ts +1 -2
  260. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  261. package/dest/log/gcloud-logger-config.js +4 -9
  262. package/dest/log/index.d.ts +5 -5
  263. package/dest/log/index.d.ts.map +1 -1
  264. package/dest/log/index.js +4 -4
  265. package/dest/log/libp2p_logger.d.ts +5 -2
  266. package/dest/log/libp2p_logger.d.ts.map +1 -1
  267. package/dest/log/libp2p_logger.js +27 -6
  268. package/dest/log/log-filters.d.ts +17 -4
  269. package/dest/log/log-filters.d.ts.map +1 -1
  270. package/dest/log/log-filters.js +26 -12
  271. package/dest/log/log-levels.d.ts +1 -1
  272. package/dest/log/log_fn.d.ts +2 -2
  273. package/dest/log/log_fn.d.ts.map +1 -1
  274. package/dest/log/noir_debug_log_util.d.ts +14 -0
  275. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  276. package/dest/log/noir_debug_log_util.js +14 -0
  277. package/dest/log/pino-logger-server.d.ts +9 -0
  278. package/dest/log/pino-logger-server.d.ts.map +1 -0
  279. package/dest/log/pino-logger-server.js +18 -0
  280. package/dest/log/pino-logger.d.ts +40 -11
  281. package/dest/log/pino-logger.d.ts.map +1 -1
  282. package/dest/log/pino-logger.js +149 -30
  283. package/dest/message/index.d.ts +1 -1
  284. package/dest/message/index.d.ts.map +1 -1
  285. package/dest/mutex/index.d.ts +1 -1
  286. package/dest/mutex/index.d.ts.map +1 -1
  287. package/dest/mutex/mutex_database.d.ts +1 -1
  288. package/dest/mutex/mutex_database.d.ts.map +1 -1
  289. package/dest/noir/index.d.ts +1 -1
  290. package/dest/noir/noir_package_config.d.ts +9 -9
  291. package/dest/number/index.d.ts +3 -0
  292. package/dest/number/index.d.ts.map +1 -0
  293. package/dest/number/index.js +12 -0
  294. package/dest/profiler/index.d.ts +2 -0
  295. package/dest/profiler/index.d.ts.map +1 -0
  296. package/dest/profiler/index.js +1 -0
  297. package/dest/profiler/profiler.d.ts +8 -0
  298. package/dest/profiler/profiler.d.ts.map +1 -0
  299. package/dest/profiler/profiler.js +97 -0
  300. package/dest/promise/index.d.ts +1 -1
  301. package/dest/promise/running-promise.d.ts +2 -2
  302. package/dest/promise/running-promise.d.ts.map +1 -1
  303. package/dest/promise/running-promise.js +2 -2
  304. package/dest/promise/utils.d.ts +1 -1
  305. package/dest/queue/base_memory_queue.d.ts +2 -2
  306. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  307. package/dest/queue/batch_queue.d.ts +2 -2
  308. package/dest/queue/batch_queue.d.ts.map +1 -1
  309. package/dest/queue/batch_queue.js +1 -1
  310. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  311. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  312. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  313. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  314. package/dest/queue/index.d.ts +1 -1
  315. package/dest/queue/priority_memory_queue.d.ts +1 -1
  316. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  317. package/dest/queue/priority_queue.d.ts +1 -1
  318. package/dest/queue/priority_queue.d.ts.map +1 -1
  319. package/dest/queue/semaphore.d.ts +5 -1
  320. package/dest/queue/semaphore.d.ts.map +1 -1
  321. package/dest/queue/serial_queue.d.ts +3 -3
  322. package/dest/queue/serial_queue.d.ts.map +1 -1
  323. package/dest/queue/serial_queue.js +7 -5
  324. package/dest/retry/index.d.ts +14 -3
  325. package/dest/retry/index.d.ts.map +1 -1
  326. package/dest/retry/index.js +13 -2
  327. package/dest/running-promise/index.d.ts +1 -1
  328. package/dest/schemas/api.d.ts +1 -1
  329. package/dest/schemas/api.d.ts.map +1 -1
  330. package/dest/schemas/index.d.ts +1 -1
  331. package/dest/schemas/parse.d.ts +1 -1
  332. package/dest/schemas/parse.js +1 -1
  333. package/dest/schemas/schemas.d.ts +21 -20
  334. package/dest/schemas/schemas.d.ts.map +1 -1
  335. package/dest/schemas/schemas.js +29 -11
  336. package/dest/schemas/types.d.ts +31 -1
  337. package/dest/schemas/types.d.ts.map +1 -1
  338. package/dest/schemas/types.js +25 -1
  339. package/dest/schemas/utils.d.ts +4 -6
  340. package/dest/schemas/utils.d.ts.map +1 -1
  341. package/dest/schemas/utils.js +15 -5
  342. package/dest/serialize/buffer_reader.d.ts +41 -6
  343. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  344. package/dest/serialize/buffer_reader.js +70 -6
  345. package/dest/serialize/field_reader.d.ts +12 -3
  346. package/dest/serialize/field_reader.d.ts.map +1 -1
  347. package/dest/serialize/field_reader.js +19 -2
  348. package/dest/serialize/free_funcs.d.ts +25 -23
  349. package/dest/serialize/free_funcs.d.ts.map +1 -1
  350. package/dest/serialize/free_funcs.js +22 -28
  351. package/dest/serialize/index.d.ts +1 -1
  352. package/dest/serialize/serialize.d.ts +24 -7
  353. package/dest/serialize/serialize.d.ts.map +1 -1
  354. package/dest/serialize/serialize.js +32 -1
  355. package/dest/serialize/type_registry.d.ts +1 -1
  356. package/dest/serialize/type_registry.d.ts.map +1 -1
  357. package/dest/serialize/types.d.ts +1 -1
  358. package/dest/sleep/index.d.ts +4 -1
  359. package/dest/sleep/index.d.ts.map +1 -1
  360. package/dest/sleep/index.js +14 -1
  361. package/dest/string/index.d.ts +8 -3
  362. package/dest/string/index.d.ts.map +1 -1
  363. package/dest/string/index.js +27 -1
  364. package/dest/testing/files/index.d.ts +2 -3
  365. package/dest/testing/files/index.d.ts.map +1 -1
  366. package/dest/testing/files/index.js +3 -3
  367. package/dest/testing/formatting.d.ts +4 -0
  368. package/dest/testing/formatting.d.ts.map +1 -0
  369. package/dest/testing/formatting.js +3 -0
  370. package/dest/testing/index.d.ts +2 -1
  371. package/dest/testing/index.d.ts.map +1 -1
  372. package/dest/testing/index.js +1 -0
  373. package/dest/testing/port_allocator.d.ts +1 -1
  374. package/dest/testing/snapshot_serializer.d.ts +1 -1
  375. package/dest/testing/test_data.d.ts +1 -1
  376. package/dest/timer/date.d.ts +28 -2
  377. package/dest/timer/date.d.ts.map +1 -1
  378. package/dest/timer/date.js +41 -3
  379. package/dest/timer/elapsed.d.ts +1 -1
  380. package/dest/timer/index.d.ts +2 -2
  381. package/dest/timer/index.d.ts.map +1 -1
  382. package/dest/timer/index.js +1 -1
  383. package/dest/timer/timeout.d.ts +19 -6
  384. package/dest/timer/timeout.d.ts.map +1 -1
  385. package/dest/timer/timeout.js +43 -22
  386. package/dest/timer/timer.d.ts +1 -1
  387. package/dest/timer/timer.d.ts.map +1 -1
  388. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  389. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  390. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  391. package/dest/transport/dispatch/messages.d.ts +1 -1
  392. package/dest/transport/index.d.ts +1 -2
  393. package/dest/transport/index.d.ts.map +1 -1
  394. package/dest/transport/index.js +0 -1
  395. package/dest/transport/interface/connector.d.ts +1 -1
  396. package/dest/transport/interface/connector.d.ts.map +1 -1
  397. package/dest/transport/interface/listener.d.ts +1 -2
  398. package/dest/transport/interface/listener.d.ts.map +1 -1
  399. package/dest/transport/interface/socket.d.ts +1 -1
  400. package/dest/transport/interface/socket.d.ts.map +1 -1
  401. package/dest/transport/interface/transferable.d.ts +1 -1
  402. package/dest/transport/node/index.d.ts +1 -1
  403. package/dest/transport/node/node_connector.d.ts +1 -2
  404. package/dest/transport/node/node_connector.d.ts.map +1 -1
  405. package/dest/transport/node/node_connector_socket.d.ts +1 -2
  406. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  407. package/dest/transport/node/node_listener.d.ts +1 -2
  408. package/dest/transport/node/node_listener.d.ts.map +1 -1
  409. package/dest/transport/node/node_listener_socket.d.ts +1 -2
  410. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  411. package/dest/transport/transport_client.d.ts +1 -2
  412. package/dest/transport/transport_client.d.ts.map +1 -1
  413. package/dest/transport/transport_client.js +2 -2
  414. package/dest/transport/transport_server.d.ts +1 -10
  415. package/dest/transport/transport_server.d.ts.map +1 -1
  416. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  417. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  418. package/dest/trees/balanced_merkle_tree_root.js +51 -0
  419. package/dest/trees/hasher.d.ts +7 -7
  420. package/dest/trees/hasher.d.ts.map +1 -1
  421. package/dest/trees/hasher.js +10 -5
  422. package/dest/trees/index.d.ts +5 -3
  423. package/dest/trees/index.d.ts.map +1 -1
  424. package/dest/trees/index.js +4 -2
  425. package/dest/trees/indexed_merkle_tree.d.ts +1 -3
  426. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  427. package/dest/trees/indexed_merkle_tree.js +1 -1
  428. package/dest/trees/indexed_merkle_tree_calculator.d.ts +2 -4
  429. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  430. package/dest/trees/indexed_tree_leaf.d.ts +1 -3
  431. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  432. package/dest/trees/membership_witness.d.ts +10 -5
  433. package/dest/trees/membership_witness.d.ts.map +1 -1
  434. package/dest/trees/membership_witness.js +23 -1
  435. package/dest/trees/merkle_tree.d.ts +1 -3
  436. package/dest/trees/merkle_tree.d.ts.map +1 -1
  437. package/dest/trees/merkle_tree_calculator.d.ts +2 -4
  438. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  439. package/dest/trees/merkle_tree_calculator.js +2 -2
  440. package/dest/trees/sibling_path.d.ts +6 -41
  441. package/dest/trees/sibling_path.d.ts.map +1 -1
  442. package/dest/trees/sibling_path.js +3 -3
  443. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  444. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  445. package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
  446. package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
  447. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  448. package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
  449. package/dest/trees/unbalanced_tree_store.d.ts +6 -1
  450. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  451. package/dest/trees/unbalanced_tree_store.js +55 -1
  452. package/dest/types/index.d.ts +30 -3
  453. package/dest/types/index.d.ts.map +1 -1
  454. package/dest/types/index.js +6 -0
  455. package/dest/url/index.d.ts +1 -1
  456. package/dest/url/index.d.ts.map +1 -1
  457. package/dest/url/index.js +1 -1
  458. package/dest/validation/index.d.ts +1 -1
  459. package/package.json +80 -45
  460. package/src/array/array.ts +13 -16
  461. package/src/array/index.ts +1 -0
  462. package/src/array/sorted_array.ts +138 -0
  463. package/src/async-pool/index.ts +1 -0
  464. package/src/bigint/index.ts +20 -0
  465. package/src/branded-types/block_number.ts +117 -0
  466. package/src/branded-types/checkpoint_number.ts +115 -0
  467. package/src/branded-types/epoch.ts +88 -0
  468. package/src/branded-types/index.ts +7 -0
  469. package/src/branded-types/index_within_checkpoint.ts +88 -0
  470. package/src/branded-types/slot.ts +88 -0
  471. package/src/branded-types/types.ts +2 -0
  472. package/src/buffer/buffer16.ts +133 -0
  473. package/src/buffer/buffer32.ts +10 -8
  474. package/src/buffer/index.ts +2 -0
  475. package/src/buffer/utils.ts +8 -0
  476. package/src/collection/array.ts +118 -4
  477. package/src/collection/object.ts +37 -0
  478. package/src/config/env_var.ts +227 -60
  479. package/src/config/index.ts +241 -10
  480. package/src/config/network_config.ts +21 -0
  481. package/src/config/network_name.ts +31 -0
  482. package/src/config/parse-env.ts +4 -0
  483. package/src/config/secret_value.ts +49 -0
  484. package/src/crypto/aes128/index.ts +19 -10
  485. package/src/crypto/bls/bn254_keystore.ts +287 -0
  486. package/src/crypto/bls/index.ts +77 -0
  487. package/src/crypto/bn254/index.ts +64 -0
  488. package/src/crypto/ecdsa/index.ts +41 -23
  489. package/src/crypto/ecdsa/signature.ts +2 -2
  490. package/src/crypto/grumpkin/index.ts +38 -46
  491. package/src/crypto/keys/index.ts +6 -6
  492. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  493. package/src/crypto/poseidon/index.ts +27 -29
  494. package/src/crypto/random/index.ts +2 -40
  495. package/src/crypto/random/randomness_singleton.ts +6 -4
  496. package/src/crypto/schnorr/index.ts +22 -18
  497. package/src/crypto/schnorr/signature.ts +2 -2
  498. package/src/crypto/secp256k1/index.ts +15 -11
  499. package/src/crypto/secp256k1-signer/utils.ts +152 -7
  500. package/src/crypto/sha256/index.ts +48 -1
  501. package/src/crypto/sha512/index.ts +1 -1
  502. package/src/crypto/signature/index.ts +1 -1
  503. package/src/crypto/sync/index.ts +1 -1
  504. package/src/crypto/sync/pedersen/index.ts +17 -16
  505. package/src/crypto/sync/poseidon/index.ts +23 -27
  506. package/src/curves/bls12/field.ts +463 -0
  507. package/src/curves/bls12/index.ts +2 -0
  508. package/src/curves/bls12/point.ts +450 -0
  509. package/src/{fields/fields.ts → curves/bn254/field.ts} +88 -63
  510. package/src/curves/bn254/index.ts +2 -0
  511. package/src/curves/bn254/point.ts +170 -0
  512. package/src/curves/grumpkin/index.ts +11 -0
  513. package/src/{fields → curves/grumpkin}/point.ts +27 -10
  514. package/src/eth-address/index.ts +35 -3
  515. package/src/eth-signature/eth_signature.ts +50 -22
  516. package/src/fs/index.ts +1 -0
  517. package/src/fs/try_rm_dir.ts +15 -0
  518. package/src/iterable/filter.ts +1 -1
  519. package/src/iterable/map.ts +1 -1
  520. package/src/iterator/filter.ts +11 -0
  521. package/src/iterator/index.ts +1 -0
  522. package/src/jest/env.mjs +52 -0
  523. package/src/jest/setup.mjs +31 -1
  524. package/src/jest/setupAfterEnv.mjs +3 -0
  525. package/src/json-rpc/client/fetch.ts +14 -33
  526. package/src/json-rpc/client/safe_json_rpc_client.ts +228 -13
  527. package/src/json-rpc/client/undici.ts +29 -18
  528. package/src/json-rpc/convert.ts +3 -12
  529. package/src/json-rpc/errors.ts +6 -0
  530. package/src/json-rpc/fixtures/class_a.ts +4 -1
  531. package/src/json-rpc/fixtures/class_b.ts +4 -1
  532. package/src/json-rpc/index.ts +2 -1
  533. package/src/json-rpc/server/api_key_auth.ts +63 -0
  534. package/src/json-rpc/server/index.ts +1 -0
  535. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  536. package/src/json-rpc/test/integration.ts +1 -1
  537. package/src/log/bigint-utils.ts +25 -0
  538. package/src/log/console.ts +4 -1
  539. package/src/log/gcloud-logger-config.ts +8 -7
  540. package/src/log/index.ts +4 -4
  541. package/src/log/libp2p_logger.ts +33 -7
  542. package/src/log/log-filters.ts +29 -11
  543. package/src/log/log_fn.ts +1 -1
  544. package/src/log/noir_debug_log_util.ts +21 -0
  545. package/src/log/pino-logger-server.ts +25 -0
  546. package/src/log/pino-logger.ts +175 -39
  547. package/src/message/index.ts +5 -1
  548. package/src/mutex/mutex_database.ts +2 -3
  549. package/src/number/index.ts +14 -0
  550. package/src/profiler/index.ts +1 -0
  551. package/src/profiler/profiler.ts +125 -0
  552. package/src/promise/running-promise.ts +2 -2
  553. package/src/queue/base_memory_queue.ts +1 -1
  554. package/src/queue/batch_queue.ts +1 -1
  555. package/src/queue/bounded_serial_queue.ts +4 -1
  556. package/src/queue/semaphore.ts +5 -0
  557. package/src/queue/serial_queue.ts +5 -5
  558. package/src/retry/index.ts +28 -5
  559. package/src/schemas/api.ts +4 -4
  560. package/src/schemas/parse.ts +1 -1
  561. package/src/schemas/schemas.ts +42 -13
  562. package/src/schemas/types.ts +33 -0
  563. package/src/schemas/utils.ts +21 -8
  564. package/src/serialize/buffer_reader.ts +96 -12
  565. package/src/serialize/field_reader.ts +28 -4
  566. package/src/serialize/free_funcs.ts +26 -32
  567. package/src/serialize/serialize.ts +35 -1
  568. package/src/sleep/index.ts +16 -1
  569. package/src/string/index.ts +36 -1
  570. package/src/testing/files/index.ts +7 -3
  571. package/src/testing/formatting.ts +3 -0
  572. package/src/testing/index.ts +1 -0
  573. package/src/timer/date.ts +61 -3
  574. package/src/timer/index.ts +1 -1
  575. package/src/timer/timeout.ts +54 -19
  576. package/src/transport/index.ts +0 -1
  577. package/src/transport/interface/connector.ts +0 -1
  578. package/src/transport/interface/listener.ts +2 -3
  579. package/src/transport/interface/socket.ts +2 -3
  580. package/src/transport/transport_client.ts +5 -6
  581. package/src/transport/transport_server.ts +4 -1
  582. package/src/trees/balanced_merkle_tree_root.ts +68 -0
  583. package/src/trees/hasher.ts +13 -4
  584. package/src/trees/index.ts +4 -2
  585. package/src/trees/indexed_merkle_tree.ts +6 -2
  586. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  587. package/src/trees/membership_witness.ts +22 -1
  588. package/src/trees/merkle_tree.ts +4 -1
  589. package/src/trees/merkle_tree_calculator.ts +10 -5
  590. package/src/trees/sibling_path.ts +3 -3
  591. package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
  592. package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
  593. package/src/trees/unbalanced_tree_store.ts +62 -3
  594. package/src/types/index.ts +35 -4
  595. package/src/url/index.ts +0 -1
  596. package/dest/crypto/index.d.ts +0 -15
  597. package/dest/crypto/index.d.ts.map +0 -1
  598. package/dest/crypto/index.js +0 -14
  599. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  600. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  601. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  602. package/dest/fields/coordinate.d.ts +0 -68
  603. package/dest/fields/coordinate.d.ts.map +0 -1
  604. package/dest/fields/coordinate.js +0 -96
  605. package/dest/fields/fields.d.ts +0 -176
  606. package/dest/fields/fields.d.ts.map +0 -1
  607. package/dest/fields/index.d.ts +0 -4
  608. package/dest/fields/index.d.ts.map +0 -1
  609. package/dest/fields/index.js +0 -3
  610. package/dest/fields/point.d.ts.map +0 -1
  611. package/dest/index.d.ts +0 -31
  612. package/dest/index.d.ts.map +0 -1
  613. package/dest/index.js +0 -31
  614. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  615. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  616. package/dest/json-rpc/server/telemetry.js +0 -0
  617. package/dest/log/debug.d.ts +0 -56
  618. package/dest/log/debug.d.ts.map +0 -1
  619. package/dest/log/debug.js +0 -75
  620. package/dest/log/log_history.d.ts +0 -31
  621. package/dest/log/log_history.d.ts.map +0 -1
  622. package/dest/log/log_history.js +0 -38
  623. package/dest/transport/browser/index.d.ts +0 -5
  624. package/dest/transport/browser/index.d.ts.map +0 -1
  625. package/dest/transport/browser/index.js +0 -4
  626. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  627. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  628. package/dest/transport/browser/message_port_socket.js +0 -42
  629. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  630. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  631. package/dest/transport/browser/shared_worker_connector.js +0 -19
  632. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  633. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  634. package/dest/transport/browser/shared_worker_listener.js +0 -33
  635. package/dest/transport/browser/worker_connector.d.ts +0 -26
  636. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  637. package/dest/transport/browser/worker_connector.js +0 -30
  638. package/dest/transport/browser/worker_listener.d.ts +0 -39
  639. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  640. package/dest/transport/browser/worker_listener.js +0 -35
  641. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -17
  642. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  643. package/dest/trees/unbalanced_merkle_tree.js +0 -100
  644. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  645. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  646. package/dest/wasm/empty_wasi_sdk.js +0 -148
  647. package/dest/wasm/index.d.ts +0 -2
  648. package/dest/wasm/index.d.ts.map +0 -1
  649. package/dest/wasm/index.js +0 -1
  650. package/dest/wasm/wasm_module.d.ts +0 -136
  651. package/dest/wasm/wasm_module.d.ts.map +0 -1
  652. package/dest/wasm/wasm_module.js +0 -196
  653. package/dest/worker/browser/index.d.ts +0 -3
  654. package/dest/worker/browser/index.d.ts.map +0 -1
  655. package/dest/worker/browser/index.js +0 -2
  656. package/dest/worker/browser/start_web_module.d.ts +0 -7
  657. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  658. package/dest/worker/browser/start_web_module.js +0 -27
  659. package/dest/worker/browser/web_data_store.d.ts +0 -24
  660. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  661. package/dest/worker/browser/web_data_store.js +0 -29
  662. package/dest/worker/browser/web_worker.d.ts +0 -10
  663. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  664. package/dest/worker/browser/web_worker.js +0 -25
  665. package/dest/worker/data_store.d.ts +0 -21
  666. package/dest/worker/data_store.d.ts.map +0 -1
  667. package/dest/worker/data_store.js +0 -3
  668. package/dest/worker/index.d.ts +0 -3
  669. package/dest/worker/index.d.ts.map +0 -1
  670. package/dest/worker/index.js +0 -1
  671. package/dest/worker/node/index.d.ts +0 -3
  672. package/dest/worker/node/index.d.ts.map +0 -1
  673. package/dest/worker/node/index.js +0 -2
  674. package/dest/worker/node/node_data_store.d.ts +0 -13
  675. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  676. package/dest/worker/node/node_data_store.js +0 -20
  677. package/dest/worker/node/node_worker.d.ts +0 -6
  678. package/dest/worker/node/node_worker.d.ts.map +0 -1
  679. package/dest/worker/node/node_worker.js +0 -22
  680. package/dest/worker/node/start_node_module.d.ts +0 -7
  681. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  682. package/dest/worker/node/start_node_module.js +0 -31
  683. package/dest/worker/wasm_worker.d.ts +0 -9
  684. package/dest/worker/wasm_worker.d.ts.map +0 -1
  685. package/dest/worker/wasm_worker.js +0 -3
  686. package/dest/worker/worker_pool.d.ts +0 -40
  687. package/dest/worker/worker_pool.d.ts.map +0 -1
  688. package/dest/worker/worker_pool.js +0 -51
  689. package/src/crypto/index.ts +0 -14
  690. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  691. package/src/fields/coordinate.ts +0 -104
  692. package/src/fields/index.ts +0 -3
  693. package/src/index.ts +0 -31
  694. package/src/json-rpc/server/telemetry.ts +0 -0
  695. package/src/log/debug.ts +0 -104
  696. package/src/log/log_history.ts +0 -44
  697. package/src/transport/browser/index.ts +0 -4
  698. package/src/transport/browser/message_port_socket.ts +0 -48
  699. package/src/transport/browser/shared_worker_connector.ts +0 -21
  700. package/src/transport/browser/shared_worker_listener.ts +0 -53
  701. package/src/transport/browser/worker_connector.ts +0 -30
  702. package/src/transport/browser/worker_listener.ts +0 -54
  703. package/src/trees/unbalanced_merkle_tree.ts +0 -103
  704. package/src/wasm/README.md +0 -6
  705. package/src/wasm/empty_wasi_sdk.ts +0 -166
  706. package/src/wasm/fixtures/gcd.wasm +0 -0
  707. package/src/wasm/fixtures/gcd.wat +0 -27
  708. package/src/wasm/index.ts +0 -1
  709. package/src/wasm/wasm_module.ts +0 -260
  710. package/src/worker/browser/index.ts +0 -2
  711. package/src/worker/browser/start_web_module.ts +0 -24
  712. package/src/worker/browser/web_data_store.ts +0 -38
  713. package/src/worker/browser/web_worker.ts +0 -25
  714. package/src/worker/data_store.ts +0 -19
  715. package/src/worker/index.ts +0 -2
  716. package/src/worker/node/index.ts +0 -2
  717. package/src/worker/node/node_data_store.ts +0 -27
  718. package/src/worker/node/node_worker.ts +0 -23
  719. package/src/worker/node/start_node_module.ts +0 -30
  720. package/src/worker/wasm_worker.ts +0 -7
  721. package/src/worker/worker_pool.ts +0 -73
@@ -43,7 +43,7 @@ export class RunningPromise {
43
43
  public start() {
44
44
  if (this.running) {
45
45
  this.logger.warn(`Attempted to start running promise that was already started`);
46
- return;
46
+ return this;
47
47
  }
48
48
  this.running = true;
49
49
 
@@ -73,6 +73,7 @@ export class RunningPromise {
73
73
  }
74
74
  };
75
75
  this.runningPromise = poll();
76
+ return this;
76
77
  }
77
78
 
78
79
  /**
@@ -81,7 +82,6 @@ export class RunningPromise {
81
82
  */
82
83
  async stop(): Promise<void> {
83
84
  if (!this.running) {
84
- this.logger.warn(`Running promise was not started`);
85
85
  return;
86
86
  }
87
87
  this.running = false;
@@ -122,7 +122,7 @@ export abstract class BaseMemoryQueue<T> {
122
122
  * @param handler - A function that takes an item of type T and returns a Promise<void> after processing the item.
123
123
  * @returns A Promise<void> that resolves when the queue is finished processing.
124
124
  */
125
- public async process(handler: (item: T) => Promise<void>) {
125
+ public async process(handler: (item: T) => Promise<void> | void) {
126
126
  try {
127
127
  while (true) {
128
128
  const item = await this.get();
@@ -13,7 +13,7 @@ type Batch<T, K> = {
13
13
  * A queue that groups items into batches based on a group key.
14
14
  *
15
15
  * The batching algorithm is greedy, meaning that as long as consecutive items have the same group key then they will
16
- * be batvched together. As soon as an item with a different group key is encountered, the old batch is flushed to the
16
+ * be batched together. As soon as an item with a different group key is encountered, the old batch is flushed to the
17
17
  * queue and a new batch is started.
18
18
  *
19
19
  * A batch can also be flushed to the queue if:
@@ -10,7 +10,10 @@ export class BoundedSerialQueue {
10
10
  private readonly queue = new SerialQueue();
11
11
  private semaphore: Semaphore;
12
12
 
13
- constructor(maxQueueSize: number, private log = createLogger('foundation:bounded_serial_queue')) {
13
+ constructor(
14
+ maxQueueSize: number,
15
+ private log = createLogger('foundation:bounded_serial_queue'),
16
+ ) {
14
17
  this.semaphore = new Semaphore(maxQueueSize);
15
18
  }
16
19
 
@@ -1,5 +1,10 @@
1
1
  import { FifoMemoryQueue } from './fifo_memory_queue.js';
2
2
 
3
+ export interface ISemaphore {
4
+ acquire(): Promise<void>;
5
+ release(): void;
6
+ }
7
+
3
8
  /**
4
9
  * Allows the acquiring of up to `size` tokens before calls to acquire block, waiting for a call to release().
5
10
  */
@@ -5,7 +5,7 @@ import { FifoMemoryQueue } from './fifo_memory_queue.js';
5
5
  */
6
6
  export class SerialQueue {
7
7
  private readonly queue = new FifoMemoryQueue<() => Promise<void>>();
8
- private runningPromise!: Promise<void>;
8
+ private runningPromises: Promise<void>[] = [];
9
9
  private started = false;
10
10
 
11
11
  /**
@@ -14,11 +14,11 @@ export class SerialQueue {
14
14
  * waiting for the completion of the previous one before starting its execution.
15
15
  * This method should be called once to start processing the queue.
16
16
  */
17
- public start() {
17
+ public start(numWorkers = 1) {
18
18
  if (this.started) {
19
19
  return;
20
20
  }
21
- this.runningPromise = this.queue.process(fn => fn());
21
+ this.runningPromises = Array.from({ length: numWorkers }, () => this.queue.process(fn => fn()));
22
22
  this.started = true;
23
23
  }
24
24
 
@@ -41,7 +41,7 @@ export class SerialQueue {
41
41
  */
42
42
  public cancel() {
43
43
  this.queue.cancel();
44
- return this.runningPromise;
44
+ return Promise.all(this.runningPromises).then(() => {});
45
45
  }
46
46
 
47
47
  /**
@@ -52,7 +52,7 @@ export class SerialQueue {
52
52
  */
53
53
  public end() {
54
54
  this.queue.end();
55
- return this.runningPromise;
55
+ return Promise.all(this.runningPromises).then(() => {});
56
56
  }
57
57
 
58
58
  /**
@@ -1,5 +1,5 @@
1
1
  import { TimeoutError } from '../error/index.js';
2
- import { createLogger } from '../log/index.js';
2
+ import { type Logger, createLogger } from '../log/index.js';
3
3
  import { sleep } from '../sleep/index.js';
4
4
  import { Timer } from '../timer/index.js';
5
5
 
@@ -49,7 +49,7 @@ export async function retry<Result>(
49
49
  fn: () => Promise<Result>,
50
50
  name = 'Operation',
51
51
  backoff = backoffGenerator(),
52
- log = createLogger('foundation:retry'),
52
+ log: Logger = createLogger('foundation:retry'),
53
53
  failSilently = false,
54
54
  ) {
55
55
  while (true) {
@@ -64,8 +64,8 @@ export async function retry<Result>(
64
64
  if (s === undefined) {
65
65
  throw err;
66
66
  }
67
- log.verbose(`${name} failed. Will retry in ${s}s...`);
68
- !failSilently && log.error(`Error while retrying ${name}`, err);
67
+ log?.debug(`${name} failed. Will retry in ${s}s...`);
68
+ !failSilently && log?.error(`Error while retrying ${name}`, err);
69
69
  await sleep(s * 1000);
70
70
  continue;
71
71
  }
@@ -83,7 +83,12 @@ export async function retry<Result>(
83
83
  * @param interval - The optional interval, in seconds, between retry attempts. Defaults to 1 second.
84
84
  * @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if timeout is exceeded.
85
85
  */
86
- export async function retryUntil<T>(fn: () => Promise<T | undefined>, name = '', timeout = 0, interval = 1) {
86
+ export async function retryUntil<T>(
87
+ fn: () => (T | undefined) | Promise<T | undefined>,
88
+ name = '',
89
+ timeout = 0,
90
+ interval = 1,
91
+ ) {
87
92
  const timer = new Timer();
88
93
  while (true) {
89
94
  const result = await fn();
@@ -98,3 +103,21 @@ export async function retryUntil<T>(fn: () => Promise<T | undefined>, name = '',
98
103
  }
99
104
  }
100
105
  }
106
+
107
+ /**
108
+ * Convenience wrapper around retryUntil with fast polling for tests.
109
+ * Uses 10s timeout and 100ms polling interval by default.
110
+ *
111
+ * @param fn - The function to retry until it returns a truthy value.
112
+ * @param name - Description of what we're waiting for (for error messages).
113
+ * @param timeout - Optional timeout in seconds. Defaults to 10s.
114
+ * @param interval - Optional interval in seconds. Defaults to 0.1s (100ms).
115
+ */
116
+ export function retryFastUntil<T>(
117
+ fn: () => (T | undefined) | Promise<T | undefined>,
118
+ name = '',
119
+ timeout = 10,
120
+ interval = 0.1,
121
+ ) {
122
+ return retryUntil(fn, name, timeout, interval);
123
+ }
@@ -19,10 +19,10 @@ type ZodReturnTypeFor<T> = z.ZodType<T, z.ZodTypeDef, any>;
19
19
  type ZodMapParameterTypes<T> = T extends []
20
20
  ? []
21
21
  : T extends [item: infer Head, ...infer Rest]
22
- ? [ZodParameterTypeFor<Head>, ...{ [K in keyof Rest]: ZodParameterTypeFor<Rest[K]> }]
23
- : T extends [item?: infer Head, ...infer Rest]
24
- ? [ZodNullableOptional<ZodParameterTypeFor<Head>>, ...{ [K in keyof Rest]: ZodParameterTypeFor<Rest[K]> }]
25
- : never;
22
+ ? [ZodParameterTypeFor<Head>, ...{ [K in keyof Rest]: ZodParameterTypeFor<Rest[K]> }]
23
+ : T extends [item?: infer Head, ...infer Rest]
24
+ ? [ZodNullableOptional<ZodParameterTypeFor<Head>>, ...{ [K in keyof Rest]: ZodParameterTypeFor<Rest[K]> }]
25
+ : never;
26
26
 
27
27
  /** Maps all functions in an interface to their schema representation. */
28
28
  export type ApiSchemaFor<T> = {
@@ -22,7 +22,7 @@ export function parseWithOptionals<T extends z.AnyZodTuple>(args: any[], schema:
22
22
  function isOptional(schema: z.ZodTypeAny) {
23
23
  try {
24
24
  return schema.isOptional();
25
- } catch (err) {
25
+ } catch {
26
26
  // See https://github.com/colinhacks/zod/issues/1911
27
27
  return schema._def.typeName === 'ZodOptional';
28
28
  }
@@ -1,13 +1,22 @@
1
1
  import { z } from 'zod';
2
2
 
3
+ import { EpochNumber, EpochNumberSchema } from '../branded-types/epoch.js';
4
+ import { SlotNumber, SlotNumberSchema } from '../branded-types/slot.js';
3
5
  import { Buffer32 } from '../buffer/buffer32.js';
6
+ import { SecretValue } from '../config/secret_value.js';
7
+ import { Fq, Fr } from '../curves/bn254/field.js';
8
+ import { Point } from '../curves/grumpkin/point.js';
4
9
  import { EthAddress } from '../eth-address/index.js';
5
- import { Fq, Fr } from '../fields/fields.js';
6
- import { Point } from '../fields/point.js';
7
- import { isHex, withoutHexPrefix } from '../string/index.js';
10
+ import { isHex, withHexPrefix, withoutHexPrefix } from '../string/index.js';
8
11
  import { bufferSchema, hexSchema } from './utils.js';
9
12
 
10
13
  export const schemas = {
14
+ /** Accepts a number, bigint, or string as an EpochNumber. */
15
+ EpochNumber: EpochNumberSchema,
16
+
17
+ /** Accepts a number, bigint, or string as a SlotNumber. */
18
+ SlotNumber: SlotNumberSchema,
19
+
11
20
  /** Accepts a hex string. */
12
21
  EthAddress: EthAddress.schema,
13
22
 
@@ -20,6 +29,20 @@ export const schemas = {
20
29
  /** Point. Serialized as a hex string. */
21
30
  Point: Point.schema,
22
31
 
32
+ /** Coerces truthy-like string values to boolean. */
33
+ Boolean: z.union([
34
+ z.boolean(),
35
+ z
36
+ .number()
37
+ .refine(arg => arg === 0 || arg === 1, { message: `Numeric value for a boolean variable must be 0 or 1` })
38
+ .transform(arg => arg === 1),
39
+ z
40
+ .string()
41
+ .transform(arg => arg.trim().toLowerCase())
42
+ .refine(arg => ['true', 'false', '1', '0'].includes(arg))
43
+ .transform(arg => arg === '1' || arg === 'true'),
44
+ ]),
45
+
23
46
  /** Coerces any input to bigint. */
24
47
  BigInt: z.union([z.bigint(), z.number(), z.string()]).pipe(z.coerce.bigint()),
25
48
 
@@ -35,19 +58,19 @@ export const schemas = {
35
58
  .max(2 ** 32 - 1),
36
59
  ),
37
60
 
61
+ /** Coerces input to UInt64. */
62
+ UInt64: z.union([z.bigint(), z.number(), z.string()]).pipe(
63
+ z.coerce
64
+ .bigint()
65
+ .min(0n)
66
+ .max(2n ** 64n - 1n),
67
+ ),
68
+
38
69
  /** Accepts a hex string as a Buffer32 type. */
39
70
  Buffer32: z.string().refine(isHex, 'Not a valid hex string').transform(Buffer32.fromString),
40
71
 
41
72
  /** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */
42
- Buffer: z.union([
43
- bufferSchema,
44
- z
45
- .object({
46
- type: z.literal('Buffer'),
47
- data: z.array(z.number().int().min(0).max(255)),
48
- })
49
- .transform(({ data }) => Buffer.from(data)),
50
- ]),
73
+ Buffer: bufferSchema,
51
74
 
52
75
  /** Accepts a hex string as a buffer. */
53
76
  BufferHex: z
@@ -58,7 +81,13 @@ export const schemas = {
58
81
 
59
82
  /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
60
83
  HexString: hexSchema,
84
+
85
+ /** Hex string with an optional 0x prefix which gets enforced as part of the parsing. */
86
+ HexStringWith0x: z.string().refine(isHex, 'Not a valid hex string').transform(withHexPrefix),
87
+
88
+ /** A secret config value */
89
+ SecretValue: SecretValue.schema,
61
90
  };
62
91
 
63
92
  // These are needed to avoid errors such as: "The inferred type of 'YourClassSchema' cannot be named without a reference to..."
64
- export type { EthAddress, Point, Fr, Fq };
93
+ export type { EpochNumber, EthAddress, Fq, Fr, Point, SlotNumber };
@@ -1,3 +1,36 @@
1
1
  import type { ZodType } from 'zod';
2
2
 
3
3
  export type ZodFor<T> = ZodType<T, any, any>;
4
+
5
+ /**
6
+ * Creates a schema validator that enforces all properties of type T are present in the schema.
7
+ * This provides compile-time safety to ensure schemas don't miss optional properties.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * interface MyConfig {
12
+ * foo: string;
13
+ * bar?: number;
14
+ * }
15
+ *
16
+ * // ✅ This will work - all keys present
17
+ * const schema1 = zodFor<MyConfig>()(z.object({
18
+ * foo: z.string(),
19
+ * bar: z.number().optional(),
20
+ * }));
21
+ *
22
+ * // ❌ This will error - 'bar' is missing
23
+ * const schema2 = zodFor<MyConfig>()(z.object({
24
+ * foo: z.string(),
25
+ * }));
26
+ * ```
27
+ */
28
+ export function zodFor<T>() {
29
+ return (schema => schema) as <S extends ZodType<any, any, any>>(
30
+ schema: keyof T extends keyof S['_output']
31
+ ? keyof S['_output'] extends keyof T
32
+ ? S
33
+ : S & { __error__: 'Schema has extra keys not in type'; __extra__: Exclude<keyof S['_output'], keyof T> }
34
+ : S & { __error__: 'Schema is missing keys from type'; __missing__: Exclude<keyof T, keyof S['_output']> },
35
+ ) => S;
36
+ }
@@ -21,13 +21,25 @@ export const hexSchema = z.string().refine(isHex, 'Not a valid hex string').tran
21
21
  // Copied from zod internals, which was copied from https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript
22
22
  const base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
23
23
 
24
- /** Schema for a buffer represented as a base64 string. */
25
- export const bufferSchema = z
26
- .string()
27
- // We only test the str for base64 if it's shorter than 1024 bytes, otherwise we've run into maximum
28
- // stack size exceeded errors when trying to validate excessively long strings (such as contract bytecode).
29
- .refine(str => str.length > 1024 || base64Regex.test(str), 'Not a valid base64 string')
30
- .transform(data => Buffer.from(data, 'base64'));
24
+ /** Schema for a buffer represented as a base64 string or a Buffer object. */
25
+ export const bufferSchema: ZodFor<Buffer> = z.union([
26
+ // Serialization from base64 string.
27
+ z
28
+ .string()
29
+ // We only test the str for base64 if it's shorter than 1024 bytes, otherwise we've run into maximum
30
+ // stack size exceeded errors when trying to validate excessively long strings (such as contract bytecode).
31
+ .refine(str => str.length > 1024 || base64Regex.test(str), 'Not a valid base64 string')
32
+ .transform(data => Buffer.from(data, 'base64')),
33
+ // Serialization from Buffer-annotated object.
34
+ z
35
+ .object({
36
+ type: z.literal('Buffer'),
37
+ data: z.array(z.number().int().min(0).max(255)),
38
+ })
39
+ .transform(({ data }) => Buffer.from(data)),
40
+ // Serialization from Buffer
41
+ z.instanceof(Buffer),
42
+ ]);
31
43
 
32
44
  export class ZodNullableOptional<T extends ZodTypeAny> extends ZodOptional<T> {
33
45
  _isNullableOptional = true;
@@ -88,12 +100,13 @@ export function hexSchemaFor<TClass extends { fromString(str: string): any } | {
88
100
  */
89
101
  export function bufferSchemaFor<TClass extends { fromBuffer(buf: Buffer): any }>(
90
102
  klazz: TClass,
103
+ refinement?: (buf: Buffer) => boolean,
91
104
  ): ZodType<
92
105
  TClass extends { fromBuffer(buf: Buffer): infer TInstance } ? ToJsonIs<TInstance, Buffer> : never,
93
106
  any,
94
107
  string
95
108
  > {
96
- return bufferSchema.transform(klazz.fromBuffer.bind(klazz));
109
+ return bufferSchema.refine(refinement ?? (() => true), 'Not a valid buffer').transform(klazz.fromBuffer.bind(klazz));
97
110
  }
98
111
 
99
112
  /** Creates a schema for a js Map type that matches the serialization used in jsonStringify. */
@@ -1,3 +1,4 @@
1
+ import { toBigIntBE } from '../bigint-buffer/index.js';
1
2
  import type { Tuple } from './types.js';
2
3
 
3
4
  /**
@@ -19,7 +20,10 @@ import type { Tuple } from './types.js';
19
20
  */
20
21
  export class BufferReader {
21
22
  private index: number;
22
- constructor(private buffer: Buffer, offset = 0) {
23
+ constructor(
24
+ private buffer: Buffer,
25
+ offset = 0,
26
+ ) {
23
27
  this.index = offset;
24
28
  }
25
29
 
@@ -70,6 +74,43 @@ export class BufferReader {
70
74
  return result as Tuple<number, N>;
71
75
  }
72
76
 
77
+ /**
78
+ * Reads a 256-bit unsigned integer from the buffer at the current index position.
79
+ * Updates the index position by 32 bytes after reading the number.
80
+ *
81
+ * Assumes the number is stored in big-endian format.
82
+ *
83
+ * @returns The read 256 bit value as a bigint.
84
+ */
85
+ public readUInt64(): bigint {
86
+ this.#rangeCheck(8);
87
+
88
+ const result = this.buffer.readBigUInt64BE(this.index);
89
+
90
+ this.index += 8;
91
+ return result;
92
+ }
93
+
94
+ /**
95
+ * Reads a 128-bit unsigned integer from the buffer at the current index position.
96
+ * Updates the index position by 16 bytes after reading the number.
97
+ *
98
+ * Assumes the number is stored in big-endian format.
99
+ *
100
+ * @returns The read 128 bit value as a bigint.
101
+ */
102
+ public readUInt128(): bigint {
103
+ this.#rangeCheck(16);
104
+
105
+ let result = BigInt(0);
106
+ for (let i = 0; i < 2; i++) {
107
+ result = (result << BigInt(64)) | this.buffer.readBigUInt64BE(this.index + i * 8);
108
+ }
109
+
110
+ this.index += 16;
111
+ return result;
112
+ }
113
+
73
114
  /**
74
115
  * Reads a 256-bit unsigned integer from the buffer at the current index position.
75
116
  * Updates the index position by 32 bytes after reading the number.
@@ -82,14 +123,33 @@ export class BufferReader {
82
123
  this.#rangeCheck(32);
83
124
 
84
125
  let result = BigInt(0);
85
- for (let i = 0; i < 32; i++) {
86
- result = (result << BigInt(8)) | BigInt(this.buffer[this.index + i]);
126
+ for (let i = 0; i < 4; i++) {
127
+ result = (result << BigInt(64)) | this.buffer.readBigUInt64BE(this.index + i * 8);
87
128
  }
88
129
 
89
130
  this.index += 32;
90
131
  return result;
91
132
  }
92
133
 
134
+ /**
135
+ * Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
136
+ * Updates the index position by 32 bytes after reading the number.
137
+ *
138
+ * @returns The read 256 bit signed value as a bigint.
139
+ */
140
+ public readInt256(): bigint {
141
+ this.#rangeCheck(32);
142
+ const unsigned = toBigIntBE(this.buffer.subarray(this.index, this.index + 32));
143
+ this.index += 32;
144
+ const signBit = 1n << 255n;
145
+ return unsigned >= signBit ? unsigned - (1n << 256n) : unsigned;
146
+ }
147
+
148
+ /** Alias for readUInt256 */
149
+ public readBigInt(): bigint {
150
+ return this.readUInt256();
151
+ }
152
+
93
153
  /**
94
154
  * Reads a 16-bit unsigned integer from the buffer at the current index position.
95
155
  * Updates the index position by 2 bytes after reading the number.
@@ -160,6 +220,18 @@ export class BufferReader {
160
220
  });
161
221
  }
162
222
 
223
+ /**
224
+ * Reads a vector of 256-bit unsigned integers from the buffer and returns it as an array of bigints.
225
+ * The method utilizes the 'readVector' method, passing a deserializer that reads bigints.
226
+ *
227
+ * @returns An array of bigints representing the vector read from the buffer.
228
+ */
229
+ public readUint256Vector(): bigint[] {
230
+ return this.readVector({
231
+ fromBuffer: (reader: BufferReader) => reader.readUInt256(),
232
+ });
233
+ }
234
+
163
235
  /**
164
236
  * Reads a vector of fixed size from the buffer and deserializes its elements using the provided itemDeserializer object.
165
237
  * The 'itemDeserializer' object should have a 'fromBuffer' method that takes a BufferReader instance and returns the deserialized element.
@@ -167,15 +239,22 @@ export class BufferReader {
167
239
  * deserializing each one using the 'fromBuffer' method of 'itemDeserializer'.
168
240
  *
169
241
  * @param itemDeserializer - Object with 'fromBuffer' method to deserialize vector elements.
242
+ * @param maxSize - Optional maximum allowed size for the vector. If the size exceeds this, an error is thrown.
170
243
  * @returns An array of deserialized elements of type T.
171
244
  */
172
- public readVector<T>(itemDeserializer: {
173
- /**
174
- * A method to deserialize data from a buffer.
175
- */
176
- fromBuffer: (reader: BufferReader) => T;
177
- }): T[] {
245
+ public readVector<T>(
246
+ itemDeserializer: {
247
+ /**
248
+ * A method to deserialize data from a buffer.
249
+ */
250
+ fromBuffer: (reader: BufferReader) => T;
251
+ },
252
+ maxSize?: number,
253
+ ): T[] {
178
254
  const size = this.readNumber();
255
+ if (maxSize !== undefined && size > maxSize) {
256
+ throw new Error(`Vector size ${size} exceeds maximum allowed ${maxSize}`);
257
+ }
179
258
  const result = new Array<T>(size);
180
259
  for (let i = 0; i < size; i++) {
181
260
  result[i] = itemDeserializer.fromBuffer(this);
@@ -287,10 +366,11 @@ export class BufferReader {
287
366
  * The method first reads the size of the string, then reads the corresponding
288
367
  * number of bytes from the buffer and converts them to a string.
289
368
  *
369
+ * @param maxSize - Optional maximum allowed size for the string buffer. If the size exceeds this, an error is thrown.
290
370
  * @returns The read string from the buffer.
291
371
  */
292
- public readString(): string {
293
- return this.readBuffer().toString();
372
+ public readString(maxSize?: number): string {
373
+ return this.readBuffer(maxSize).toString();
294
374
  }
295
375
 
296
376
  /**
@@ -299,10 +379,14 @@ export class BufferReader {
299
379
  * a Buffer with that size containing the bytes. Useful for reading variable-length
300
380
  * binary data encoded as (size, data) format.
301
381
  *
382
+ * @param maxSize - Optional maximum allowed size for the buffer. If the size exceeds this, an error is thrown.
302
383
  * @returns A Buffer containing the read bytes.
303
384
  */
304
- public readBuffer(): Buffer {
385
+ public readBuffer(maxSize?: number): Buffer {
305
386
  const size = this.readNumber();
387
+ if (maxSize !== undefined && size > maxSize) {
388
+ throw new Error(`Buffer size ${size} exceeds maximum allowed ${maxSize}`);
389
+ }
306
390
  this.#rangeCheck(size);
307
391
  return this.readBytes(size);
308
392
  }
@@ -1,4 +1,4 @@
1
- import { Fq, type Fr } from '../fields/fields.js';
1
+ import { Fq, type Fr } from '../curves/bn254/field.js';
2
2
  import type { Tuple } from './types.js';
3
3
 
4
4
  /**
@@ -11,11 +11,15 @@ import type { Tuple } from './types.js';
11
11
  */
12
12
  export class FieldReader {
13
13
  private index: number;
14
- private length: number;
15
- constructor(private fields: Fr[], offset = 0) {
14
+ private readonly length: number;
15
+
16
+ constructor(
17
+ private fields: Fr[],
18
+ offset = 0,
19
+ ) {
16
20
  this.index = offset;
17
21
  this.length = fields.length;
18
- if (offset >= this.length) {
22
+ if (offset > this.length) {
19
23
  throw new Error('Offset out of bounds.');
20
24
  }
21
25
  }
@@ -43,6 +47,10 @@ export class FieldReader {
43
47
  return this.index;
44
48
  }
45
49
 
50
+ public remainingFields(): number {
51
+ return this.length - this.index;
52
+ }
53
+
46
54
  /**
47
55
  * Skips the next n fields.
48
56
  *
@@ -121,6 +129,22 @@ export class FieldReader {
121
129
  return Number(value);
122
130
  }
123
131
 
132
+ /**
133
+ * Reads a 64-bit unsigned integer from the field array at the current index position.
134
+ * Updates the index position by 1 after reading the number.
135
+ * Throw if the value is greater than 2 ** 64.
136
+ *
137
+ * @returns The read 64-bit unsigned integer value as a bigint.
138
+ */
139
+ public readU64(): bigint {
140
+ const field = this.readField();
141
+ const value = field.toBigInt();
142
+ if (value >= 1n << 64n) {
143
+ throw new Error('Field is not a u64.');
144
+ }
145
+ return value;
146
+ }
147
+
124
148
  /**
125
149
  * Read an array of a fixed size field array.
126
150
  *
@@ -1,4 +1,5 @@
1
- import { Fr } from '../fields/fields.js';
1
+ import { toBufferBE } from '../bigint-buffer/index.js';
2
+ import { Fr } from '../curves/bn254/field.js';
2
3
  import type { Tuple } from './types.js';
3
4
 
4
5
  /**
@@ -56,6 +57,30 @@ export function numToUInt32BE(n: number, bufferSize = 4) {
56
57
  return buf;
57
58
  }
58
59
 
60
+ /**
61
+ * Convert a bigint to a big-endian unsigned 64-bit integer Buffer.
62
+ *
63
+ * @param n - The bigint to be converted to a big-endian unsigned 64-bit integer Buffer.
64
+ * @param bufferSize - Optional, the size of the output Buffer (default is 8).
65
+ * @returns A Buffer containing the big-endian unsigned 64-bit integer representation of the input number.
66
+ */
67
+ export function bigintToUInt64BE(n: bigint, bufferSize = 8) {
68
+ const buf = Buffer.alloc(bufferSize);
69
+ buf.writeBigUInt64BE(n, bufferSize - 8);
70
+ return buf;
71
+ }
72
+
73
+ /**
74
+ * Convert a bigint to a big-endian unsigned 128-bit integer Buffer.
75
+ *
76
+ * @param n - The bigint to be converted to a big-endian unsigned 128-bit integer Buffer.
77
+ * @param bufferSize - Optional, the size of the output Buffer (default is 16).
78
+ * @returns A Buffer containing the big-endian unsigned 128-bit integer representation of the input number.
79
+ */
80
+ export function bigintToUInt128BE(n: bigint, bufferSize = 16) {
81
+ return toBufferBE(n, bufferSize);
82
+ }
83
+
59
84
  /**
60
85
  * Serialize a number into a big-endian signed 32-bit integer Buffer with the specified buffer size.
61
86
  * This function converts the input number into its binary representation and stores it in a Buffer
@@ -160,37 +185,6 @@ export function truncateAndPad(buf: Buffer): Buffer {
160
185
  return Buffer.concat([Buffer.alloc(1), buf.subarray(0, 31)]);
161
186
  }
162
187
 
163
- /**
164
- * Stores 248 bits of information in 1 field.
165
- * @param buf - 32 or 31 bytes of data
166
- * @returns 1 field element
167
- */
168
- export function toTruncField(buf: Buffer): Fr {
169
- if (buf.length !== 32 && buf.length !== 31) {
170
- throw new Error('Buffer must be 31 or 32 bytes');
171
- }
172
- if ((buf.length == 32 && buf[0] == 0) || buf.length == 31) {
173
- return Fr.fromBuffer(buf);
174
- } else {
175
- // Note: safer to NOT truncate here, all inputs are expected to be truncated
176
- // from Noir or L1 Contracts or Class.hash() methods
177
- throw new Error(`Number ${toBigInt(buf)} does not fit in 31 byte truncated buffer`);
178
- }
179
- }
180
-
181
- /**
182
- * Reconstructs the original 31 bytes of data from 1 truncated field element.
183
- * @param field - field element
184
- * @returns 31 bytes of data as a Buffer
185
- */
186
- export function fromTruncField(field: Fr): Buffer {
187
- const buffer = field.toBuffer();
188
- if (buffer[0] != 0) {
189
- throw new Error(`Number ${field} does not fit in 31 byte truncated buffer`);
190
- }
191
- return buffer;
192
- }
193
-
194
188
  export function fromFieldsTuple(fields: Tuple<Fr, 2>): Buffer {
195
189
  return from2Fields(fields[0], fields[1]);
196
190
  }