@aztec/foundation 0.0.0-test.0

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 (736) hide show
  1. package/README.md +1 -0
  2. package/dest/array/array.d.ts +71 -0
  3. package/dest/array/array.d.ts.map +1 -0
  4. package/dest/array/array.js +100 -0
  5. package/dest/array/index.d.ts +2 -0
  6. package/dest/array/index.d.ts.map +1 -0
  7. package/dest/array/index.js +1 -0
  8. package/dest/async-map/index.d.ts +13 -0
  9. package/dest/async-map/index.d.ts.map +1 -0
  10. package/dest/async-map/index.js +17 -0
  11. package/dest/async-pool/index.d.ts +3 -0
  12. package/dest/async-pool/index.d.ts.map +1 -0
  13. package/dest/async-pool/index.js +47 -0
  14. package/dest/bigint-buffer/index.d.ts +42 -0
  15. package/dest/bigint-buffer/index.d.ts.map +1 -0
  16. package/dest/bigint-buffer/index.js +76 -0
  17. package/dest/buffer/buffer32.d.ts +91 -0
  18. package/dest/buffer/buffer32.d.ts.map +1 -0
  19. package/dest/buffer/buffer32.js +115 -0
  20. package/dest/buffer/index.d.ts +2 -0
  21. package/dest/buffer/index.d.ts.map +1 -0
  22. package/dest/buffer/index.js +1 -0
  23. package/dest/collection/array.d.ts +101 -0
  24. package/dest/collection/array.d.ts.map +1 -0
  25. package/dest/collection/array.js +164 -0
  26. package/dest/collection/index.d.ts +3 -0
  27. package/dest/collection/index.d.ts.map +1 -0
  28. package/dest/collection/index.js +2 -0
  29. package/dest/collection/object.d.ts +14 -0
  30. package/dest/collection/object.d.ts.map +1 -0
  31. package/dest/collection/object.js +32 -0
  32. package/dest/committable/committable.d.ts +28 -0
  33. package/dest/committable/committable.d.ts.map +1 -0
  34. package/dest/committable/committable.js +36 -0
  35. package/dest/committable/index.d.ts +2 -0
  36. package/dest/committable/index.d.ts.map +1 -0
  37. package/dest/committable/index.js +1 -0
  38. package/dest/config/env_var.d.ts +2 -0
  39. package/dest/config/env_var.d.ts.map +1 -0
  40. package/dest/config/env_var.js +1 -0
  41. package/dest/config/index.d.ts +66 -0
  42. package/dest/config/index.d.ts.map +1 -0
  43. package/dest/config/index.js +125 -0
  44. package/dest/crypto/aes128/index.d.ts +34 -0
  45. package/dest/crypto/aes128/index.d.ts.map +1 -0
  46. package/dest/crypto/aes128/index.js +49 -0
  47. package/dest/crypto/ecdsa/index.d.ts +39 -0
  48. package/dest/crypto/ecdsa/index.d.ts.map +1 -0
  49. package/dest/crypto/ecdsa/index.js +88 -0
  50. package/dest/crypto/ecdsa/signature.d.ts +71 -0
  51. package/dest/crypto/ecdsa/signature.d.ts.map +1 -0
  52. package/dest/crypto/ecdsa/signature.js +92 -0
  53. package/dest/crypto/grumpkin/index.d.ts +47 -0
  54. package/dest/crypto/grumpkin/index.d.ts.map +1 -0
  55. package/dest/crypto/grumpkin/index.js +154 -0
  56. package/dest/crypto/index.d.ts +15 -0
  57. package/dest/crypto/index.d.ts.map +1 -0
  58. package/dest/crypto/index.js +14 -0
  59. package/dest/crypto/keccak/index.d.ts +28 -0
  60. package/dest/crypto/keccak/index.d.ts.map +1 -0
  61. package/dest/crypto/keccak/index.js +248 -0
  62. package/dest/crypto/keys/index.d.ts +5 -0
  63. package/dest/crypto/keys/index.d.ts.map +1 -0
  64. package/dest/crypto/keys/index.js +7 -0
  65. package/dest/crypto/pedersen/index.d.ts +2 -0
  66. package/dest/crypto/pedersen/index.d.ts.map +1 -0
  67. package/dest/crypto/pedersen/index.js +1 -0
  68. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +13 -0
  69. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +1 -0
  70. package/dest/crypto/pedersen/pedersen.elliptic.js +582 -0
  71. package/dest/crypto/pedersen/pedersen.noble.d.ts +11 -0
  72. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -0
  73. package/dest/crypto/pedersen/pedersen.noble.js +558 -0
  74. package/dest/crypto/pedersen/pedersen.wasm.d.ts +21 -0
  75. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -0
  76. package/dest/crypto/pedersen/pedersen.wasm.js +41 -0
  77. package/dest/crypto/poseidon/index.d.ts +26 -0
  78. package/dest/crypto/poseidon/index.d.ts.map +1 -0
  79. package/dest/crypto/poseidon/index.js +58 -0
  80. package/dest/crypto/random/index.d.ts +25 -0
  81. package/dest/crypto/random/index.d.ts.map +1 -0
  82. package/dest/crypto/random/index.js +70 -0
  83. package/dest/crypto/random/randomness_singleton.d.ts +25 -0
  84. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -0
  85. package/dest/crypto/random/randomness_singleton.js +55 -0
  86. package/dest/crypto/schnorr/index.d.ts +30 -0
  87. package/dest/crypto/schnorr/index.d.ts.map +1 -0
  88. package/dest/crypto/schnorr/index.js +68 -0
  89. package/dest/crypto/schnorr/signature.d.ts +70 -0
  90. package/dest/crypto/schnorr/signature.d.ts.map +1 -0
  91. package/dest/crypto/schnorr/signature.js +93 -0
  92. package/dest/crypto/secp256k1/index.d.ts +32 -0
  93. package/dest/crypto/secp256k1/index.d.ts.map +1 -0
  94. package/dest/crypto/secp256k1/index.js +116 -0
  95. package/dest/crypto/secp256k1-signer/index.d.ts +3 -0
  96. package/dest/crypto/secp256k1-signer/index.d.ts.map +1 -0
  97. package/dest/crypto/secp256k1-signer/index.js +2 -0
  98. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +24 -0
  99. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -0
  100. package/dest/crypto/secp256k1-signer/secp256k1_signer.js +30 -0
  101. package/dest/crypto/secp256k1-signer/utils.d.ts +40 -0
  102. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -0
  103. package/dest/crypto/secp256k1-signer/utils.js +84 -0
  104. package/dest/crypto/serialize.d.ts +53 -0
  105. package/dest/crypto/serialize.d.ts.map +1 -0
  106. package/dest/crypto/serialize.js +68 -0
  107. package/dest/crypto/sha256/index.d.ts +20 -0
  108. package/dest/crypto/sha256/index.d.ts.map +1 -0
  109. package/dest/crypto/sha256/index.js +166 -0
  110. package/dest/crypto/sha512/index.d.ts +11 -0
  111. package/dest/crypto/sha512/index.d.ts.map +1 -0
  112. package/dest/crypto/sha512/index.js +12 -0
  113. package/dest/crypto/signature/index.d.ts +19 -0
  114. package/dest/crypto/signature/index.d.ts.map +1 -0
  115. package/dest/crypto/signature/index.js +3 -0
  116. package/dest/crypto/sync/index.d.ts +3 -0
  117. package/dest/crypto/sync/index.d.ts.map +1 -0
  118. package/dest/crypto/sync/index.js +4 -0
  119. package/dest/crypto/sync/pedersen/index.d.ts +21 -0
  120. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -0
  121. package/dest/crypto/sync/pedersen/index.js +38 -0
  122. package/dest/crypto/sync/poseidon/index.d.ts +26 -0
  123. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -0
  124. package/dest/crypto/sync/poseidon/index.js +53 -0
  125. package/dest/decorators/index.d.ts +2 -0
  126. package/dest/decorators/index.d.ts.map +1 -0
  127. package/dest/decorators/index.js +1 -0
  128. package/dest/decorators/memoize.d.ts +2 -0
  129. package/dest/decorators/memoize.d.ts.map +1 -0
  130. package/dest/decorators/memoize.js +11 -0
  131. package/dest/error/index.d.ts +21 -0
  132. package/dest/error/index.d.ts.map +1 -0
  133. package/dest/error/index.js +17 -0
  134. package/dest/eth-address/index.d.ts +134 -0
  135. package/dest/eth-address/index.d.ts.map +1 -0
  136. package/dest/eth-address/index.js +198 -0
  137. package/dest/eth-signature/eth_signature.d.ts +62 -0
  138. package/dest/eth-signature/eth_signature.d.ts.map +1 -0
  139. package/dest/eth-signature/eth_signature.js +91 -0
  140. package/dest/eth-signature/index.d.ts +2 -0
  141. package/dest/eth-signature/index.d.ts.map +1 -0
  142. package/dest/eth-signature/index.js +1 -0
  143. package/dest/fields/coordinate.d.ts +68 -0
  144. package/dest/fields/coordinate.d.ts.map +1 -0
  145. package/dest/fields/coordinate.js +96 -0
  146. package/dest/fields/fields.d.ts +176 -0
  147. package/dest/fields/fields.d.ts.map +1 -0
  148. package/dest/fields/fields.js +383 -0
  149. package/dest/fields/index.d.ts +4 -0
  150. package/dest/fields/index.d.ts.map +1 -0
  151. package/dest/fields/index.js +3 -0
  152. package/dest/fields/point.d.ts +175 -0
  153. package/dest/fields/point.d.ts.map +1 -0
  154. package/dest/fields/point.js +260 -0
  155. package/dest/fs/index.d.ts +2 -0
  156. package/dest/fs/index.d.ts.map +1 -0
  157. package/dest/fs/index.js +1 -0
  158. package/dest/fs/run_in_dir.d.ts +2 -0
  159. package/dest/fs/run_in_dir.d.ts.map +1 -0
  160. package/dest/fs/run_in_dir.js +31 -0
  161. package/dest/index.d.ts +31 -0
  162. package/dest/index.d.ts.map +1 -0
  163. package/dest/index.js +31 -0
  164. package/dest/iterable/all.d.ts +9 -0
  165. package/dest/iterable/all.d.ts.map +1 -0
  166. package/dest/iterable/all.js +18 -0
  167. package/dest/iterable/filter.d.ts +10 -0
  168. package/dest/iterable/filter.d.ts.map +1 -0
  169. package/dest/iterable/filter.js +48 -0
  170. package/dest/iterable/index.d.ts +8 -0
  171. package/dest/iterable/index.d.ts.map +1 -0
  172. package/dest/iterable/index.js +7 -0
  173. package/dest/iterable/isAsyncIt.d.ts +7 -0
  174. package/dest/iterable/isAsyncIt.d.ts.map +1 -0
  175. package/dest/iterable/isAsyncIt.js +7 -0
  176. package/dest/iterable/map.d.ts +12 -0
  177. package/dest/iterable/map.d.ts.map +1 -0
  178. package/dest/iterable/map.js +36 -0
  179. package/dest/iterable/peek.d.ts +19 -0
  180. package/dest/iterable/peek.d.ts.map +1 -0
  181. package/dest/iterable/peek.js +33 -0
  182. package/dest/iterable/sort.d.ts +14 -0
  183. package/dest/iterable/sort.d.ts.map +1 -0
  184. package/dest/iterable/sort.js +15 -0
  185. package/dest/iterable/take.d.ts +10 -0
  186. package/dest/iterable/take.d.ts.map +1 -0
  187. package/dest/iterable/take.js +32 -0
  188. package/dest/iterable/toArray.d.ts +2 -0
  189. package/dest/iterable/toArray.d.ts.map +1 -0
  190. package/dest/iterable/toArray.js +7 -0
  191. package/dest/jest/setup.js +7 -0
  192. package/dest/json-rpc/client/fetch.d.ts +32 -0
  193. package/dest/json-rpc/client/fetch.d.ts.map +1 -0
  194. package/dest/json-rpc/client/fetch.js +77 -0
  195. package/dest/json-rpc/client/index.d.ts +3 -0
  196. package/dest/json-rpc/client/index.d.ts.map +1 -0
  197. package/dest/json-rpc/client/index.js +2 -0
  198. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +26 -0
  199. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -0
  200. package/dest/json-rpc/client/safe_json_rpc_client.js +57 -0
  201. package/dest/json-rpc/client/undici.d.ts +5 -0
  202. package/dest/json-rpc/client/undici.d.ts.map +1 -0
  203. package/dest/json-rpc/client/undici.js +63 -0
  204. package/dest/json-rpc/convert.d.ts +27 -0
  205. package/dest/json-rpc/convert.d.ts.map +1 -0
  206. package/dest/json-rpc/convert.js +48 -0
  207. package/dest/json-rpc/fixtures/class_a.d.ts +11 -0
  208. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -0
  209. package/dest/json-rpc/fixtures/class_a.js +20 -0
  210. package/dest/json-rpc/fixtures/class_b.d.ts +11 -0
  211. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -0
  212. package/dest/json-rpc/fixtures/class_b.js +20 -0
  213. package/dest/json-rpc/fixtures/test_state.d.ts +89 -0
  214. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -0
  215. package/dest/json-rpc/fixtures/test_state.js +131 -0
  216. package/dest/json-rpc/index.d.ts +2 -0
  217. package/dest/json-rpc/index.d.ts.map +1 -0
  218. package/dest/json-rpc/index.js +1 -0
  219. package/dest/json-rpc/js_utils.d.ts +13 -0
  220. package/dest/json-rpc/js_utils.d.ts.map +1 -0
  221. package/dest/json-rpc/js_utils.js +16 -0
  222. package/dest/json-rpc/server/index.d.ts +2 -0
  223. package/dest/json-rpc/server/index.d.ts.map +1 -0
  224. package/dest/json-rpc/server/index.js +1 -0
  225. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +140 -0
  226. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -0
  227. package/dest/json-rpc/server/safe_json_rpc_server.js +346 -0
  228. package/dest/json-rpc/server/telemetry.d.ts +2 -0
  229. package/dest/json-rpc/server/telemetry.d.ts.map +1 -0
  230. package/dest/json-rpc/server/telemetry.js +0 -0
  231. package/dest/json-rpc/test/index.d.ts +2 -0
  232. package/dest/json-rpc/test/index.d.ts.map +1 -0
  233. package/dest/json-rpc/test/index.js +1 -0
  234. package/dest/json-rpc/test/integration.d.ts +15 -0
  235. package/dest/json-rpc/test/integration.d.ts.map +1 -0
  236. package/dest/json-rpc/test/integration.js +21 -0
  237. package/dest/log/console.d.ts +11 -0
  238. package/dest/log/console.d.ts.map +1 -0
  239. package/dest/log/console.js +36 -0
  240. package/dest/log/debug.d.ts +56 -0
  241. package/dest/log/debug.d.ts.map +1 -0
  242. package/dest/log/debug.js +75 -0
  243. package/dest/log/gcloud-logger-config.d.ts +14 -0
  244. package/dest/log/gcloud-logger-config.d.ts.map +1 -0
  245. package/dest/log/gcloud-logger-config.js +66 -0
  246. package/dest/log/index.d.ts +7 -0
  247. package/dest/log/index.d.ts.map +1 -0
  248. package/dest/log/index.js +6 -0
  249. package/dest/log/libp2p_logger.d.ts +7 -0
  250. package/dest/log/libp2p_logger.d.ts.map +1 -0
  251. package/dest/log/libp2p_logger.js +55 -0
  252. package/dest/log/log-filters.d.ts +7 -0
  253. package/dest/log/log-filters.d.ts.map +1 -0
  254. package/dest/log/log-filters.js +59 -0
  255. package/dest/log/log-levels.d.ts +3 -0
  256. package/dest/log/log-levels.d.ts.map +1 -0
  257. package/dest/log/log-levels.js +10 -0
  258. package/dest/log/log_fn.d.ts +7 -0
  259. package/dest/log/log_fn.d.ts.map +1 -0
  260. package/dest/log/log_fn.js +1 -0
  261. package/dest/log/log_history.d.ts +31 -0
  262. package/dest/log/log_history.d.ts.map +1 -0
  263. package/dest/log/log_history.js +38 -0
  264. package/dest/log/pino-logger.d.ts +57 -0
  265. package/dest/log/pino-logger.d.ts.map +1 -0
  266. package/dest/log/pino-logger.js +207 -0
  267. package/dest/message/index.d.ts +32 -0
  268. package/dest/message/index.d.ts.map +1 -0
  269. package/dest/message/index.js +27 -0
  270. package/dest/mutex/index.d.ts +53 -0
  271. package/dest/mutex/index.d.ts.map +1 -0
  272. package/dest/mutex/index.js +78 -0
  273. package/dest/mutex/mutex_database.d.ts +10 -0
  274. package/dest/mutex/mutex_database.d.ts.map +1 -0
  275. package/dest/mutex/mutex_database.js +4 -0
  276. package/dest/noir/index.d.ts +2 -0
  277. package/dest/noir/index.d.ts.map +1 -0
  278. package/dest/noir/index.js +1 -0
  279. package/dest/noir/noir_package_config.d.ts +129 -0
  280. package/dest/noir/noir_package_config.d.ts.map +1 -0
  281. package/dest/noir/noir_package_config.js +36 -0
  282. package/dest/promise/index.d.ts +3 -0
  283. package/dest/promise/index.d.ts.map +1 -0
  284. package/dest/promise/index.js +2 -0
  285. package/dest/promise/running-promise.d.ts +47 -0
  286. package/dest/promise/running-promise.d.ts.map +1 -0
  287. package/dest/promise/running-promise.js +110 -0
  288. package/dest/promise/utils.d.ts +12 -0
  289. package/dest/promise/utils.d.ts.map +1 -0
  290. package/dest/promise/utils.js +20 -0
  291. package/dest/queue/base_memory_queue.d.ts +65 -0
  292. package/dest/queue/base_memory_queue.d.ts.map +1 -0
  293. package/dest/queue/base_memory_queue.js +116 -0
  294. package/dest/queue/batch_queue.d.ts +47 -0
  295. package/dest/queue/batch_queue.d.ts.map +1 -0
  296. package/dest/queue/batch_queue.js +105 -0
  297. package/dest/queue/bounded_serial_queue.d.ts +56 -0
  298. package/dest/queue/bounded_serial_queue.d.ts.map +1 -0
  299. package/dest/queue/bounded_serial_queue.js +84 -0
  300. package/dest/queue/fifo_memory_queue.d.ts +21 -0
  301. package/dest/queue/fifo_memory_queue.d.ts.map +1 -0
  302. package/dest/queue/fifo_memory_queue.js +29 -0
  303. package/dest/queue/index.d.ts +7 -0
  304. package/dest/queue/index.d.ts.map +1 -0
  305. package/dest/queue/index.js +6 -0
  306. package/dest/queue/priority_memory_queue.d.ts +13 -0
  307. package/dest/queue/priority_memory_queue.d.ts.map +1 -0
  308. package/dest/queue/priority_memory_queue.js +16 -0
  309. package/dest/queue/priority_queue.d.ts +14 -0
  310. package/dest/queue/priority_queue.d.ts.map +1 -0
  311. package/dest/queue/priority_queue.js +29 -0
  312. package/dest/queue/semaphore.d.ts +23 -0
  313. package/dest/queue/semaphore.d.ts.map +1 -0
  314. package/dest/queue/semaphore.js +26 -0
  315. package/dest/queue/serial_queue.d.ts +49 -0
  316. package/dest/queue/serial_queue.d.ts.map +1 -0
  317. package/dest/queue/serial_queue.js +72 -0
  318. package/dest/retry/index.d.ts +44 -0
  319. package/dest/retry/index.d.ts.map +1 -0
  320. package/dest/retry/index.js +93 -0
  321. package/dest/running-promise/index.d.ts +2 -0
  322. package/dest/running-promise/index.d.ts.map +1 -0
  323. package/dest/running-promise/index.js +1 -0
  324. package/dest/schemas/api.d.ts +21 -0
  325. package/dest/schemas/api.d.ts.map +1 -0
  326. package/dest/schemas/api.js +3 -0
  327. package/dest/schemas/index.d.ts +6 -0
  328. package/dest/schemas/index.d.ts.map +1 -0
  329. package/dest/schemas/index.js +5 -0
  330. package/dest/schemas/parse.d.ts +9 -0
  331. package/dest/schemas/parse.d.ts.map +1 -0
  332. package/dest/schemas/parse.js +22 -0
  333. package/dest/schemas/schemas.d.ts +45 -0
  334. package/dest/schemas/schemas.d.ts.map +1 -0
  335. package/dest/schemas/schemas.js +38 -0
  336. package/dest/schemas/types.d.ts +3 -0
  337. package/dest/schemas/types.d.ts.map +1 -0
  338. package/dest/schemas/types.js +1 -0
  339. package/dest/schemas/utils.d.ts +53 -0
  340. package/dest/schemas/utils.d.ts.map +1 -0
  341. package/dest/schemas/utils.js +60 -0
  342. package/dest/serialize/buffer_reader.d.ts +239 -0
  343. package/dest/serialize/buffer_reader.d.ts.map +1 -0
  344. package/dest/serialize/buffer_reader.js +290 -0
  345. package/dest/serialize/field_reader.d.ts +112 -0
  346. package/dest/serialize/field_reader.d.ts.map +1 -0
  347. package/dest/serialize/field_reader.js +147 -0
  348. package/dest/serialize/free_funcs.d.ts +105 -0
  349. package/dest/serialize/free_funcs.d.ts.map +1 -0
  350. package/dest/serialize/free_funcs.js +189 -0
  351. package/dest/serialize/index.d.ts +7 -0
  352. package/dest/serialize/index.d.ts.map +1 -0
  353. package/dest/serialize/index.js +6 -0
  354. package/dest/serialize/serialize.d.ts +182 -0
  355. package/dest/serialize/serialize.d.ts.map +1 -0
  356. package/dest/serialize/serialize.js +248 -0
  357. package/dest/serialize/type_registry.d.ts +23 -0
  358. package/dest/serialize/type_registry.d.ts.map +1 -0
  359. package/dest/serialize/type_registry.js +61 -0
  360. package/dest/serialize/types.d.ts +33 -0
  361. package/dest/serialize/types.d.ts.map +1 -0
  362. package/dest/serialize/types.js +21 -0
  363. package/dest/sleep/index.d.ts +51 -0
  364. package/dest/sleep/index.d.ts.map +1 -0
  365. package/dest/sleep/index.js +67 -0
  366. package/dest/string/index.d.ts +11 -0
  367. package/dest/string/index.d.ts.map +1 -0
  368. package/dest/string/index.js +24 -0
  369. package/dest/testing/files/index.d.ts +20 -0
  370. package/dest/testing/files/index.d.ts.map +1 -0
  371. package/dest/testing/files/index.js +58 -0
  372. package/dest/testing/index.d.ts +4 -0
  373. package/dest/testing/index.d.ts.map +1 -0
  374. package/dest/testing/index.js +3 -0
  375. package/dest/testing/port_allocator.d.ts +10 -0
  376. package/dest/testing/port_allocator.d.ts.map +1 -0
  377. package/dest/testing/port_allocator.js +29 -0
  378. package/dest/testing/snapshot_serializer.d.ts +5 -0
  379. package/dest/testing/snapshot_serializer.d.ts.map +1 -0
  380. package/dest/testing/snapshot_serializer.js +32 -0
  381. package/dest/testing/test_data.d.ts +7 -0
  382. package/dest/testing/test_data.d.ts.map +1 -0
  383. package/dest/testing/test_data.js +29 -0
  384. package/dest/timer/date.d.ts +13 -0
  385. package/dest/timer/date.d.ts.map +1 -0
  386. package/dest/timer/date.js +24 -0
  387. package/dest/timer/elapsed.d.ts +13 -0
  388. package/dest/timer/elapsed.d.ts.map +1 -0
  389. package/dest/timer/elapsed.js +25 -0
  390. package/dest/timer/index.d.ts +5 -0
  391. package/dest/timer/index.d.ts.map +1 -0
  392. package/dest/timer/index.js +4 -0
  393. package/dest/timer/timeout.d.ts +41 -0
  394. package/dest/timer/timeout.d.ts.map +1 -0
  395. package/dest/timer/timeout.js +66 -0
  396. package/dest/timer/timer.d.ts +37 -0
  397. package/dest/timer/timer.d.ts.map +1 -0
  398. package/dest/timer/timer.js +40 -0
  399. package/dest/transport/browser/index.d.ts +5 -0
  400. package/dest/transport/browser/index.d.ts.map +1 -0
  401. package/dest/transport/browser/index.js +4 -0
  402. package/dest/transport/browser/message_port_socket.d.ts +37 -0
  403. package/dest/transport/browser/message_port_socket.d.ts.map +1 -0
  404. package/dest/transport/browser/message_port_socket.js +42 -0
  405. package/dest/transport/browser/shared_worker_connector.d.ts +19 -0
  406. package/dest/transport/browser/shared_worker_connector.d.ts.map +1 -0
  407. package/dest/transport/browser/shared_worker_connector.js +19 -0
  408. package/dest/transport/browser/shared_worker_listener.d.ts +38 -0
  409. package/dest/transport/browser/shared_worker_listener.d.ts.map +1 -0
  410. package/dest/transport/browser/shared_worker_listener.js +33 -0
  411. package/dest/transport/browser/worker_connector.d.ts +26 -0
  412. package/dest/transport/browser/worker_connector.d.ts.map +1 -0
  413. package/dest/transport/browser/worker_connector.js +30 -0
  414. package/dest/transport/browser/worker_listener.d.ts +39 -0
  415. package/dest/transport/browser/worker_listener.d.ts.map +1 -0
  416. package/dest/transport/browser/worker_listener.js +35 -0
  417. package/dest/transport/dispatch/create_dispatch_fn.d.ts +25 -0
  418. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -0
  419. package/dest/transport/dispatch/create_dispatch_fn.js +17 -0
  420. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +102 -0
  421. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -0
  422. package/dest/transport/dispatch/create_dispatch_proxy.js +59 -0
  423. package/dest/transport/dispatch/messages.d.ts +52 -0
  424. package/dest/transport/dispatch/messages.d.ts.map +1 -0
  425. package/dest/transport/dispatch/messages.js +13 -0
  426. package/dest/transport/index.d.ts +12 -0
  427. package/dest/transport/index.d.ts.map +1 -0
  428. package/dest/transport/index.js +11 -0
  429. package/dest/transport/interface/connector.d.ts +8 -0
  430. package/dest/transport/interface/connector.d.ts.map +1 -0
  431. package/dest/transport/interface/connector.js +3 -0
  432. package/dest/transport/interface/listener.d.ts +13 -0
  433. package/dest/transport/interface/listener.d.ts.map +1 -0
  434. package/dest/transport/interface/listener.js +4 -0
  435. package/dest/transport/interface/socket.d.ts +13 -0
  436. package/dest/transport/interface/socket.d.ts.map +1 -0
  437. package/dest/transport/interface/socket.js +7 -0
  438. package/dest/transport/interface/transferable.d.ts +68 -0
  439. package/dest/transport/interface/transferable.d.ts.map +1 -0
  440. package/dest/transport/interface/transferable.js +63 -0
  441. package/dest/transport/node/index.d.ts +3 -0
  442. package/dest/transport/node/index.d.ts.map +1 -0
  443. package/dest/transport/node/index.js +2 -0
  444. package/dest/transport/node/node_connector.d.ts +28 -0
  445. package/dest/transport/node/node_connector.d.ts.map +1 -0
  446. package/dest/transport/node/node_connector.js +26 -0
  447. package/dest/transport/node/node_connector_socket.d.ts +42 -0
  448. package/dest/transport/node/node_connector_socket.d.ts.map +1 -0
  449. package/dest/transport/node/node_connector_socket.js +44 -0
  450. package/dest/transport/node/node_listener.d.ts +26 -0
  451. package/dest/transport/node/node_listener.d.ts.map +1 -0
  452. package/dest/transport/node/node_listener.js +26 -0
  453. package/dest/transport/node/node_listener_socket.d.ts +37 -0
  454. package/dest/transport/node/node_listener_socket.d.ts.map +1 -0
  455. package/dest/transport/node/node_listener_socket.js +40 -0
  456. package/dest/transport/transport_client.d.ts +61 -0
  457. package/dest/transport/transport_client.d.ts.map +1 -0
  458. package/dest/transport/transport_client.js +96 -0
  459. package/dest/transport/transport_server.d.ts +56 -0
  460. package/dest/transport/transport_server.d.ts.map +1 -0
  461. package/dest/transport/transport_server.js +114 -0
  462. package/dest/trees/hasher.d.ts +39 -0
  463. package/dest/trees/hasher.d.ts.map +1 -0
  464. package/dest/trees/hasher.js +5 -0
  465. package/dest/trees/index.d.ts +11 -0
  466. package/dest/trees/index.d.ts.map +1 -0
  467. package/dest/trees/index.js +10 -0
  468. package/dest/trees/indexed_merkle_tree.d.ts +13 -0
  469. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -0
  470. package/dest/trees/indexed_merkle_tree.js +27 -0
  471. package/dest/trees/indexed_merkle_tree_calculator.d.ts +23 -0
  472. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -0
  473. package/dest/trees/indexed_merkle_tree_calculator.js +83 -0
  474. package/dest/trees/indexed_tree_leaf.d.ts +57 -0
  475. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -0
  476. package/dest/trees/indexed_tree_leaf.js +5 -0
  477. package/dest/trees/membership_witness.d.ts +62 -0
  478. package/dest/trees/membership_witness.d.ts.map +1 -0
  479. package/dest/trees/membership_witness.js +70 -0
  480. package/dest/trees/merkle_tree.d.ts +18 -0
  481. package/dest/trees/merkle_tree.d.ts.map +1 -0
  482. package/dest/trees/merkle_tree.js +58 -0
  483. package/dest/trees/merkle_tree_calculator.d.ts +16 -0
  484. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -0
  485. package/dest/trees/merkle_tree_calculator.js +61 -0
  486. package/dest/trees/sibling_path.d.ts +132 -0
  487. package/dest/trees/sibling_path.d.ts.map +1 -0
  488. package/dest/trees/sibling_path.js +144 -0
  489. package/dest/trees/unbalanced_merkle_tree.d.ts +17 -0
  490. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -0
  491. package/dest/trees/unbalanced_merkle_tree.js +100 -0
  492. package/dest/trees/unbalanced_tree_store.d.ts +19 -0
  493. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -0
  494. package/dest/trees/unbalanced_tree_store.js +94 -0
  495. package/dest/types/index.d.ts +19 -0
  496. package/dest/types/index.d.ts.map +1 -0
  497. package/dest/types/index.js +3 -0
  498. package/dest/url/index.d.ts +9 -0
  499. package/dest/url/index.d.ts.map +1 -0
  500. package/dest/url/index.js +62 -0
  501. package/dest/validation/index.d.ts +9 -0
  502. package/dest/validation/index.d.ts.map +1 -0
  503. package/dest/validation/index.js +15 -0
  504. package/dest/wasm/empty_wasi_sdk.d.ts +130 -0
  505. package/dest/wasm/empty_wasi_sdk.d.ts.map +1 -0
  506. package/dest/wasm/empty_wasi_sdk.js +148 -0
  507. package/dest/wasm/index.d.ts +2 -0
  508. package/dest/wasm/index.d.ts.map +1 -0
  509. package/dest/wasm/index.js +1 -0
  510. package/dest/wasm/wasm_module.d.ts +136 -0
  511. package/dest/wasm/wasm_module.d.ts.map +1 -0
  512. package/dest/wasm/wasm_module.js +196 -0
  513. package/dest/worker/browser/index.d.ts +3 -0
  514. package/dest/worker/browser/index.d.ts.map +1 -0
  515. package/dest/worker/browser/index.js +2 -0
  516. package/dest/worker/browser/start_web_module.d.ts +7 -0
  517. package/dest/worker/browser/start_web_module.d.ts.map +1 -0
  518. package/dest/worker/browser/start_web_module.js +27 -0
  519. package/dest/worker/browser/web_data_store.d.ts +24 -0
  520. package/dest/worker/browser/web_data_store.d.ts.map +1 -0
  521. package/dest/worker/browser/web_data_store.js +29 -0
  522. package/dest/worker/browser/web_worker.d.ts +10 -0
  523. package/dest/worker/browser/web_worker.d.ts.map +1 -0
  524. package/dest/worker/browser/web_worker.js +25 -0
  525. package/dest/worker/data_store.d.ts +21 -0
  526. package/dest/worker/data_store.d.ts.map +1 -0
  527. package/dest/worker/data_store.js +3 -0
  528. package/dest/worker/index.d.ts +3 -0
  529. package/dest/worker/index.d.ts.map +1 -0
  530. package/dest/worker/index.js +1 -0
  531. package/dest/worker/node/index.d.ts +3 -0
  532. package/dest/worker/node/index.d.ts.map +1 -0
  533. package/dest/worker/node/index.js +2 -0
  534. package/dest/worker/node/node_data_store.d.ts +13 -0
  535. package/dest/worker/node/node_data_store.d.ts.map +1 -0
  536. package/dest/worker/node/node_data_store.js +20 -0
  537. package/dest/worker/node/node_worker.d.ts +6 -0
  538. package/dest/worker/node/node_worker.d.ts.map +1 -0
  539. package/dest/worker/node/node_worker.js +22 -0
  540. package/dest/worker/node/start_node_module.d.ts +7 -0
  541. package/dest/worker/node/start_node_module.d.ts.map +1 -0
  542. package/dest/worker/node/start_node_module.js +31 -0
  543. package/dest/worker/wasm_worker.d.ts +9 -0
  544. package/dest/worker/wasm_worker.d.ts.map +1 -0
  545. package/dest/worker/wasm_worker.js +3 -0
  546. package/dest/worker/worker_pool.d.ts +40 -0
  547. package/dest/worker/worker_pool.d.ts.map +1 -0
  548. package/dest/worker/worker_pool.js +51 -0
  549. package/package.json +176 -0
  550. package/src/array/array.ts +150 -0
  551. package/src/array/index.ts +1 -0
  552. package/src/async-map/index.ts +18 -0
  553. package/src/async-pool/index.ts +50 -0
  554. package/src/bigint-buffer/index.ts +87 -0
  555. package/src/buffer/buffer32.ts +144 -0
  556. package/src/buffer/index.ts +1 -0
  557. package/src/collection/array.ts +203 -0
  558. package/src/collection/index.ts +2 -0
  559. package/src/collection/object.ts +52 -0
  560. package/src/committable/committable.ts +46 -0
  561. package/src/committable/index.ts +1 -0
  562. package/src/config/env_var.ts +207 -0
  563. package/src/config/index.ts +167 -0
  564. package/src/crypto/aes128/index.ts +59 -0
  565. package/src/crypto/ecdsa/index.ts +70 -0
  566. package/src/crypto/ecdsa/signature.ts +100 -0
  567. package/src/crypto/grumpkin/index.ts +97 -0
  568. package/src/crypto/index.ts +14 -0
  569. package/src/crypto/keccak/index.ts +283 -0
  570. package/src/crypto/keys/index.ts +10 -0
  571. package/src/crypto/pedersen/index.ts +1 -0
  572. package/src/crypto/pedersen/pedersen.elliptic.ts +584 -0
  573. package/src/crypto/pedersen/pedersen.noble.ts +573 -0
  574. package/src/crypto/pedersen/pedersen.wasm.ts +48 -0
  575. package/src/crypto/poseidon/index.ts +77 -0
  576. package/src/crypto/random/index.ts +85 -0
  577. package/src/crypto/random/randomness_singleton.ts +62 -0
  578. package/src/crypto/schnorr/index.ts +55 -0
  579. package/src/crypto/schnorr/signature.ts +116 -0
  580. package/src/crypto/secp256k1/index.ts +57 -0
  581. package/src/crypto/secp256k1-signer/index.ts +2 -0
  582. package/src/crypto/secp256k1-signer/secp256k1_signer.ts +38 -0
  583. package/src/crypto/secp256k1-signer/utils.ts +99 -0
  584. package/src/crypto/serialize.ts +85 -0
  585. package/src/crypto/sha256/index.ts +147 -0
  586. package/src/crypto/sha512/index.ts +16 -0
  587. package/src/crypto/signature/index.ts +17 -0
  588. package/src/crypto/sync/index.ts +6 -0
  589. package/src/crypto/sync/pedersen/index.ts +45 -0
  590. package/src/crypto/sync/poseidon/index.ts +76 -0
  591. package/src/decorators/index.ts +1 -0
  592. package/src/decorators/memoize.ts +11 -0
  593. package/src/error/index.ts +22 -0
  594. package/src/eth-address/index.ts +241 -0
  595. package/src/eth-signature/eth_signature.ts +128 -0
  596. package/src/eth-signature/index.ts +1 -0
  597. package/src/fields/coordinate.ts +104 -0
  598. package/src/fields/fields.ts +505 -0
  599. package/src/fields/index.ts +3 -0
  600. package/src/fields/point.ts +300 -0
  601. package/src/fs/index.ts +1 -0
  602. package/src/fs/run_in_dir.ts +33 -0
  603. package/src/index.ts +31 -0
  604. package/src/iterable/all.ts +32 -0
  605. package/src/iterable/filter.ts +77 -0
  606. package/src/iterable/index.ts +7 -0
  607. package/src/iterable/isAsyncIt.ts +8 -0
  608. package/src/iterable/map.ts +66 -0
  609. package/src/iterable/peek.ts +58 -0
  610. package/src/iterable/sort.ts +39 -0
  611. package/src/iterable/take.ts +54 -0
  612. package/src/iterable/toArray.ts +9 -0
  613. package/src/jest/setup.mjs +9 -0
  614. package/src/json-rpc/README.md +55 -0
  615. package/src/json-rpc/client/fetch.ts +103 -0
  616. package/src/json-rpc/client/index.ts +2 -0
  617. package/src/json-rpc/client/safe_json_rpc_client.ts +67 -0
  618. package/src/json-rpc/client/undici.ts +75 -0
  619. package/src/json-rpc/convert.ts +61 -0
  620. package/src/json-rpc/fixtures/class_a.ts +15 -0
  621. package/src/json-rpc/fixtures/class_b.ts +15 -0
  622. package/src/json-rpc/fixtures/test_state.ts +143 -0
  623. package/src/json-rpc/index.ts +1 -0
  624. package/src/json-rpc/js_utils.ts +21 -0
  625. package/src/json-rpc/server/index.ts +1 -0
  626. package/src/json-rpc/server/safe_json_rpc_server.ts +376 -0
  627. package/src/json-rpc/server/telemetry.ts +0 -0
  628. package/src/json-rpc/test/index.ts +1 -0
  629. package/src/json-rpc/test/integration.ts +35 -0
  630. package/src/log/console.ts +39 -0
  631. package/src/log/debug.ts +104 -0
  632. package/src/log/gcloud-logger-config.ts +71 -0
  633. package/src/log/index.ts +6 -0
  634. package/src/log/libp2p_logger.ts +67 -0
  635. package/src/log/log-filters.ts +63 -0
  636. package/src/log/log-levels.ts +3 -0
  637. package/src/log/log_fn.ts +5 -0
  638. package/src/log/log_history.ts +44 -0
  639. package/src/log/pino-logger.ts +243 -0
  640. package/src/message/index.ts +43 -0
  641. package/src/mutex/index.ts +84 -0
  642. package/src/mutex/mutex_database.ts +12 -0
  643. package/src/noir/index.ts +1 -0
  644. package/src/noir/noir_package_config.ts +54 -0
  645. package/src/promise/index.ts +2 -0
  646. package/src/promise/running-promise.ts +125 -0
  647. package/src/promise/utils.ts +29 -0
  648. package/src/queue/base_memory_queue.ts +138 -0
  649. package/src/queue/batch_queue.ts +120 -0
  650. package/src/queue/bounded_serial_queue.ts +100 -0
  651. package/src/queue/fifo_memory_queue.ts +39 -0
  652. package/src/queue/index.ts +6 -0
  653. package/src/queue/priority_memory_queue.ts +20 -0
  654. package/src/queue/priority_queue.ts +34 -0
  655. package/src/queue/semaphore.ts +33 -0
  656. package/src/queue/serial_queue.ts +86 -0
  657. package/src/retry/index.ts +100 -0
  658. package/src/running-promise/index.ts +1 -0
  659. package/src/schemas/api.ts +47 -0
  660. package/src/schemas/index.ts +5 -0
  661. package/src/schemas/parse.ts +29 -0
  662. package/src/schemas/schemas.ts +64 -0
  663. package/src/schemas/types.ts +3 -0
  664. package/src/schemas/utils.ts +112 -0
  665. package/src/serialize/buffer_reader.ts +383 -0
  666. package/src/serialize/field_reader.ts +184 -0
  667. package/src/serialize/free_funcs.ts +204 -0
  668. package/src/serialize/index.ts +6 -0
  669. package/src/serialize/serialize.ts +336 -0
  670. package/src/serialize/type_registry.ts +75 -0
  671. package/src/serialize/types.ts +40 -0
  672. package/src/sleep/index.ts +75 -0
  673. package/src/string/index.ts +31 -0
  674. package/src/testing/files/index.ts +69 -0
  675. package/src/testing/index.ts +3 -0
  676. package/src/testing/port_allocator.ts +31 -0
  677. package/src/testing/snapshot_serializer.ts +33 -0
  678. package/src/testing/test_data.ts +36 -0
  679. package/src/timer/date.ts +24 -0
  680. package/src/timer/elapsed.ts +23 -0
  681. package/src/timer/index.ts +4 -0
  682. package/src/timer/timeout.ts +70 -0
  683. package/src/timer/timer.ts +48 -0
  684. package/src/transport/browser/index.ts +4 -0
  685. package/src/transport/browser/message_port_socket.ts +48 -0
  686. package/src/transport/browser/shared_worker_connector.ts +21 -0
  687. package/src/transport/browser/shared_worker_listener.ts +53 -0
  688. package/src/transport/browser/worker_connector.ts +30 -0
  689. package/src/transport/browser/worker_listener.ts +54 -0
  690. package/src/transport/dispatch/create_dispatch_fn.ts +35 -0
  691. package/src/transport/dispatch/create_dispatch_proxy.ts +141 -0
  692. package/src/transport/dispatch/messages.ts +58 -0
  693. package/src/transport/index.ts +11 -0
  694. package/src/transport/interface/connector.ts +9 -0
  695. package/src/transport/interface/listener.ts +16 -0
  696. package/src/transport/interface/socket.ts +15 -0
  697. package/src/transport/interface/transferable.ts +125 -0
  698. package/src/transport/node/index.ts +2 -0
  699. package/src/transport/node/node_connector.ts +30 -0
  700. package/src/transport/node/node_connector_socket.ts +52 -0
  701. package/src/transport/node/node_listener.ts +34 -0
  702. package/src/transport/node/node_listener_socket.ts +48 -0
  703. package/src/transport/transport_client.ts +131 -0
  704. package/src/transport/transport_server.ts +108 -0
  705. package/src/trees/hasher.ts +39 -0
  706. package/src/trees/index.ts +10 -0
  707. package/src/trees/indexed_merkle_tree.ts +36 -0
  708. package/src/trees/indexed_merkle_tree_calculator.ts +94 -0
  709. package/src/trees/indexed_tree_leaf.ts +56 -0
  710. package/src/trees/membership_witness.ts +99 -0
  711. package/src/trees/merkle_tree.ts +72 -0
  712. package/src/trees/merkle_tree_calculator.ts +67 -0
  713. package/src/trees/sibling_path.ts +183 -0
  714. package/src/trees/unbalanced_merkle_tree.ts +103 -0
  715. package/src/trees/unbalanced_tree_store.ts +102 -0
  716. package/src/types/index.ts +25 -0
  717. package/src/url/index.ts +73 -0
  718. package/src/validation/index.ts +18 -0
  719. package/src/wasm/README.md +6 -0
  720. package/src/wasm/empty_wasi_sdk.ts +166 -0
  721. package/src/wasm/fixtures/gcd.wasm +0 -0
  722. package/src/wasm/fixtures/gcd.wat +27 -0
  723. package/src/wasm/index.ts +1 -0
  724. package/src/wasm/wasm_module.ts +260 -0
  725. package/src/worker/browser/index.ts +2 -0
  726. package/src/worker/browser/start_web_module.ts +24 -0
  727. package/src/worker/browser/web_data_store.ts +38 -0
  728. package/src/worker/browser/web_worker.ts +25 -0
  729. package/src/worker/data_store.ts +19 -0
  730. package/src/worker/index.ts +2 -0
  731. package/src/worker/node/index.ts +2 -0
  732. package/src/worker/node/node_data_store.ts +27 -0
  733. package/src/worker/node/node_worker.ts +23 -0
  734. package/src/worker/node/start_node_module.ts +30 -0
  735. package/src/worker/wasm_worker.ts +7 -0
  736. package/src/worker/worker_pool.ts +73 -0
@@ -0,0 +1,207 @@
1
+ export type EnvVar =
2
+ | 'ACVM_BINARY_PATH'
3
+ | 'ACVM_WORKING_DIRECTORY'
4
+ | 'GOVERNANCE_CONTRACT_ADDRESS'
5
+ | 'API_KEY'
6
+ | 'API_PREFIX'
7
+ | 'ARCHIVER_MAX_LOGS'
8
+ | 'ARCHIVER_POLLING_INTERVAL_MS'
9
+ | 'ARCHIVER_URL'
10
+ | 'ARCHIVER_VIEM_POLLING_INTERVAL_MS'
11
+ | 'ARCHIVER_BATCH_SIZE'
12
+ | 'ASSUME_PROVEN_THROUGH_BLOCK_NUMBER'
13
+ | 'AZTEC_NODE_URL'
14
+ | 'AZTEC_PORT'
15
+ | 'BB_BINARY_PATH'
16
+ | 'BB_SKIP_CLEANUP'
17
+ | 'BB_WORKING_DIRECTORY'
18
+ | 'BOOTSTRAP_NODES'
19
+ | 'BLOB_SINK_ARCHIVE_API_URL'
20
+ | 'BLOB_SINK_PORT'
21
+ | 'BLOB_SINK_URL'
22
+ | 'BOT_DA_GAS_LIMIT'
23
+ | 'BOT_FEE_PAYMENT_METHOD'
24
+ | 'BOT_FLUSH_SETUP_TRANSACTIONS'
25
+ | 'BOT_FOLLOW_CHAIN'
26
+ | 'BOT_L2_GAS_LIMIT'
27
+ | 'BOT_MAX_PENDING_TXS'
28
+ | 'BOT_NO_START'
29
+ | 'BOT_NO_WAIT_FOR_TRANSFERS'
30
+ | 'BOT_L1_MNEMONIC'
31
+ | 'BOT_L1_PRIVATE_KEY'
32
+ | 'BOT_PRIVATE_KEY'
33
+ | 'BOT_PRIVATE_TRANSFERS_PER_TX'
34
+ | 'BOT_PUBLIC_TRANSFERS_PER_TX'
35
+ | 'BOT_PXE_URL'
36
+ | 'BOT_RECIPIENT_ENCRYPTION_SECRET'
37
+ | 'BOT_SKIP_PUBLIC_SIMULATION'
38
+ | 'BOT_TOKEN_CONTRACT'
39
+ | 'BOT_TOKEN_SALT'
40
+ | 'BOT_TX_INTERVAL_SECONDS'
41
+ | 'BOT_TX_MINED_WAIT_SECONDS'
42
+ | 'BOT_MAX_CONSECUTIVE_ERRORS'
43
+ | 'BOT_STOP_WHEN_UNHEALTHY'
44
+ | 'COINBASE'
45
+ | 'DATA_DIRECTORY'
46
+ | 'DATA_STORE_MAP_SIZE_KB'
47
+ | 'DEBUG'
48
+ | 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
49
+ | 'DEPLOY_AZTEC_CONTRACTS_SALT'
50
+ | 'DEPLOY_AZTEC_CONTRACTS'
51
+ | 'ENFORCE_FEES'
52
+ | 'ETHEREUM_HOSTS'
53
+ | 'FEE_JUICE_CONTRACT_ADDRESS'
54
+ | 'FEE_JUICE_PORTAL_CONTRACT_ADDRESS'
55
+ | 'FEE_RECIPIENT'
56
+ | 'FORCE_COLOR'
57
+ | 'GOVERNANCE_PROPOSER_CONTRACT_ADDRESS'
58
+ | 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS'
59
+ | 'INBOX_CONTRACT_ADDRESS'
60
+ | 'L1_CHAIN_ID'
61
+ | 'L1_CONSENSUS_HOST_URL'
62
+ | 'L1_CONSENSUS_HOST_API_KEY'
63
+ | 'L1_CONSENSUS_HOST_API_KEY_HEADER'
64
+ | 'L1_PRIVATE_KEY'
65
+ | 'LOG_JSON'
66
+ | 'LOG_MULTILINE'
67
+ | 'LOG_LEVEL'
68
+ | 'MNEMONIC'
69
+ | 'NETWORK_NAME'
70
+ | 'NETWORK'
71
+ | 'NO_PXE'
72
+ | 'COIN_ISSUER_CONTRACT_ADDRESS'
73
+ | 'USE_GCLOUD_LOGGING'
74
+ | 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
75
+ | 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'
76
+ | 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
77
+ | 'OTEL_COLLECT_INTERVAL_MS'
78
+ | 'OTEL_EXCLUDE_METRICS'
79
+ | 'OTEL_EXPORT_TIMEOUT_MS'
80
+ | 'OUTBOX_CONTRACT_ADDRESS'
81
+ | 'P2P_BLOCK_CHECK_INTERVAL_MS'
82
+ | 'P2P_BLOCK_REQUEST_BATCH_SIZE'
83
+ | 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK'
84
+ | 'P2P_BOOTSTRAP_NODES_AS_FULL_PEERS'
85
+ | 'P2P_ENABLED'
86
+ | 'P2P_GOSSIPSUB_D'
87
+ | 'P2P_GOSSIPSUB_DHI'
88
+ | 'P2P_GOSSIPSUB_DLO'
89
+ | 'P2P_GOSSIPSUB_DLAZY'
90
+ | 'P2P_GOSSIPSUB_FLOOD_PUBLISH'
91
+ | 'P2P_GOSSIPSUB_INTERVAL_MS'
92
+ | 'P2P_GOSSIPSUB_MCACHE_GOSSIP'
93
+ | 'P2P_GOSSIPSUB_MCACHE_LENGTH'
94
+ | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY'
95
+ | 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT'
96
+ | 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT'
97
+ | 'P2P_L2_QUEUE_SIZE'
98
+ | 'P2P_MAX_PEERS'
99
+ | 'P2P_PEER_CHECK_INTERVAL_MS'
100
+ | 'P2P_PEER_PENALTY_VALUES'
101
+ | 'P2P_QUERY_FOR_IP'
102
+ | 'P2P_REQRESP_INDIVIDUAL_REQUEST_TIMEOUT_MS'
103
+ | 'P2P_REQRESP_OVERALL_REQUEST_TIMEOUT_MS'
104
+ | 'P2P_DOUBLE_SPEND_SEVERE_PEER_PENALTY_WINDOW'
105
+ | 'P2P_TCP_LISTEN_ADDR'
106
+ | 'P2P_TCP_ANNOUNCE_ADDR'
107
+ | 'P2P_TX_POOL_KEEP_PROVEN_FOR'
108
+ | 'P2P_ATTESTATION_POOL_KEEP_FOR'
109
+ | 'P2P_UDP_ANNOUNCE_ADDR'
110
+ | 'P2P_UDP_LISTEN_ADDR'
111
+ | 'P2P_ARCHIVED_TX_LIMIT'
112
+ | 'PEER_ID_PRIVATE_KEY'
113
+ | 'PROVER_AGENT_CONCURRENCY'
114
+ | 'PROVER_AGENT_COUNT'
115
+ | 'PROVER_AGENT_PROOF_TYPES'
116
+ | 'PROVER_AGENT_POLL_INTERVAL_MS'
117
+ | 'PROVER_BROKER_HOST'
118
+ | 'PROVER_BROKER_ENABLED'
119
+ | 'PROVER_BROKER_JOB_TIMEOUT_MS'
120
+ | 'PROVER_BROKER_POLL_INTERVAL_MS'
121
+ | 'PROVER_BROKER_JOB_MAX_RETRIES'
122
+ | 'PROVER_BROKER_BATCH_INTERVAL_MS'
123
+ | 'PROVER_BROKER_BATCH_SIZE'
124
+ | 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
125
+ | 'PROVER_COORDINATION_NODE_URL'
126
+ | 'PROVER_FAILED_PROOF_STORE'
127
+ | 'PROVER_ID'
128
+ | 'PROVER_JOB_TIMEOUT_MS'
129
+ | 'PROVER_NODE_POLLING_INTERVAL_MS'
130
+ | 'PROVER_NODE_MAX_PENDING_JOBS'
131
+ | 'PROVER_NODE_MAX_PARALLEL_BLOCKS_PER_EPOCH'
132
+ | 'PROVER_NODE_TX_GATHERING_TIMEOUT_MS'
133
+ | 'PROVER_NODE_TX_GATHERING_INTERVAL_MS'
134
+ | 'PROVER_NODE_TX_GATHERING_MAX_PARALLEL_REQUESTS'
135
+ | 'PROVER_PUBLISH_RETRY_INTERVAL_MS'
136
+ | 'PROVER_PUBLISHER_PRIVATE_KEY'
137
+ | 'PROVER_REAL_PROOFS'
138
+ | 'PROVER_TEST_DELAY_FACTOR'
139
+ | 'PROVER_TEST_DELAY_MS'
140
+ | 'PROVER_TEST_DELAY_TYPE'
141
+ | 'PXE_L2_STARTING_BLOCK'
142
+ | 'PXE_PROVER_ENABLED'
143
+ | 'REGISTRY_CONTRACT_ADDRESS'
144
+ | 'ROLLUP_CONTRACT_ADDRESS'
145
+ | 'SEQ_ALLOWED_SETUP_FN'
146
+ | 'SEQ_MAX_BLOCK_SIZE_IN_BYTES'
147
+ | 'SEQ_MAX_TX_PER_BLOCK'
148
+ | 'SEQ_MIN_TX_PER_BLOCK'
149
+ | 'SEQ_MAX_DA_BLOCK_GAS'
150
+ | 'SEQ_MAX_L2_BLOCK_GAS'
151
+ | 'SEQ_PUBLISH_RETRY_INTERVAL_MS'
152
+ | 'SEQ_PUBLISHER_PRIVATE_KEY'
153
+ | 'SEQ_TX_POLLING_INTERVAL_MS'
154
+ | 'SEQ_ENFORCE_TIME_TABLE'
155
+ | 'SEQ_MAX_L1_TX_INCLUSION_TIME_INTO_SLOT'
156
+ | 'SLASH_FACTORY_CONTRACT_ADDRESS'
157
+ | 'STAKING_ASSET_CONTRACT_ADDRESS'
158
+ | 'REWARD_DISTRIBUTOR_CONTRACT_ADDRESS'
159
+ | 'TELEMETRY'
160
+ | 'TEST_ACCOUNTS'
161
+ | 'TX_GOSSIP_VERSION'
162
+ | 'TXE_PORT'
163
+ | 'VALIDATOR_ATTESTATIONS_POLLING_INTERVAL_MS'
164
+ | 'VALIDATOR_DISABLED'
165
+ | 'VALIDATOR_PRIVATE_KEY'
166
+ | 'VALIDATOR_REEXECUTE'
167
+ | 'VERSION'
168
+ | 'WS_BLOCK_CHECK_INTERVAL_MS'
169
+ | 'WS_PROVEN_BLOCKS_ONLY'
170
+ | 'WS_BLOCK_REQUEST_BATCH_SIZE'
171
+ | 'VERIFIER_VIEM_POLLING_INTERVAL_MS'
172
+ | 'L1_READER_VIEM_POLLING_INTERVAL_MS'
173
+ | 'PROVER_VIEM_POLLING_INTERVAL_MS'
174
+ | 'SEQ_VIEM_POLLING_INTERVAL_MS'
175
+ | 'WS_DB_MAP_SIZE_KB'
176
+ | 'WS_DATA_DIRECTORY'
177
+ | 'WS_NUM_HISTORIC_BLOCKS'
178
+ | 'ETHEREUM_SLOT_DURATION'
179
+ | 'AZTEC_SLOT_DURATION'
180
+ | 'AZTEC_EPOCH_DURATION'
181
+ | 'AZTEC_TARGET_COMMITTEE_SIZE'
182
+ | 'AZTEC_PROOF_SUBMISSION_WINDOW'
183
+ | 'AZTEC_MINIMUM_STAKE'
184
+ | 'AZTEC_SLASHING_QUORUM'
185
+ | 'AZTEC_SLASHING_ROUND_SIZE'
186
+ | 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
187
+ | 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
188
+ | 'L1_GAS_LIMIT_BUFFER_PERCENTAGE'
189
+ | 'L1_GAS_PRICE_MIN'
190
+ | 'L1_GAS_PRICE_MAX'
191
+ | 'L1_BLOB_FEE_PER_GAS_MAX'
192
+ | 'L1_PRIORITY_FEE_BUMP_PERCENTAGE'
193
+ | 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE'
194
+ | 'L1_FIXED_PRIORITY_FEE_PER_GAS'
195
+ | 'L1_TX_MONITOR_MAX_ATTEMPTS'
196
+ | 'L1_TX_MONITOR_CHECK_INTERVAL_MS'
197
+ | 'L1_TX_MONITOR_STALL_TIME_MS'
198
+ | 'L1_TX_MONITOR_TX_TIMEOUT_MS'
199
+ | 'L1_TX_PROPAGATION_MAX_QUERY_ATTEMPTS'
200
+ | 'FAUCET_MNEMONIC_ACCOUNT_INDEX'
201
+ | 'FAUCET_ETH_AMOUNT'
202
+ | 'FAUCET_INTERVAL_MS'
203
+ | 'FAUCET_L1_ASSETS'
204
+ | 'K8S_POD_NAME'
205
+ | 'K8S_POD_UID'
206
+ | 'K8S_NAMESPACE_NAME'
207
+ | 'CUSTOM_FORWARDER_CONTRACT_ADDRESS';
@@ -0,0 +1,167 @@
1
+ import type { EnvVar } from './env_var.js';
2
+
3
+ export { type EnvVar } from './env_var.js';
4
+
5
+ export interface ConfigMapping {
6
+ env?: EnvVar;
7
+ parseEnv?: (val: string) => any;
8
+ defaultValue?: any;
9
+ printDefault?: (val: any) => string;
10
+ description: string;
11
+ isBoolean?: boolean;
12
+ nested?: Record<string, ConfigMapping>;
13
+ }
14
+
15
+ export function isBooleanConfigValue<T>(obj: T, key: keyof T): boolean {
16
+ return typeof obj[key] === 'boolean';
17
+ }
18
+
19
+ export type ConfigMappingsType<T> = Record<keyof T, ConfigMapping>;
20
+
21
+ export function getConfigFromMappings<T>(configMappings: ConfigMappingsType<T>): T {
22
+ const config = {} as T;
23
+
24
+ for (const key in configMappings) {
25
+ const { env, parseEnv, defaultValue: def, nested } = configMappings[key];
26
+ if (nested) {
27
+ (config as any)[key] = getConfigFromMappings(nested);
28
+ } else {
29
+ const val = env ? process.env[env] : undefined;
30
+ if (val !== undefined) {
31
+ (config as any)[key] = parseEnv ? parseEnv(val) : val;
32
+ } else if (def !== undefined) {
33
+ (config as any)[key] = def;
34
+ }
35
+ }
36
+ }
37
+
38
+ return config;
39
+ }
40
+
41
+ /**
42
+ * Filters out a service's config mappings to exclude certain keys.
43
+ * @param configMappings - The service's config mappings
44
+ * @param keysToFilter - The keys to filter out
45
+ * @returns The filtered config mappings
46
+ */
47
+ export function omitConfigMappings<T, K extends keyof T>(
48
+ configMappings: ConfigMappingsType<T>,
49
+ keysToFilter: K[],
50
+ ): ConfigMappingsType<Omit<T, K>> {
51
+ return Object.fromEntries(
52
+ Object.entries(configMappings).filter(([key]) => !keysToFilter.includes(key as K)),
53
+ ) as ConfigMappingsType<Omit<T, K>>;
54
+ }
55
+
56
+ /**
57
+ * Generates parseEnv and default values for a numerical config value.
58
+ * @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
59
+ * @returns Object with parseEnv and default values for a numerical config value
60
+ */
61
+ export function numberConfigHelper(defaultVal: number): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
62
+ return {
63
+ parseEnv: (val: string) => safeParseNumber(val, defaultVal),
64
+ defaultValue: defaultVal,
65
+ };
66
+ }
67
+
68
+ /**
69
+ * Generates parseEnv and default values for a numerical config value.
70
+ * @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
71
+ * @returns Object with parseEnv and default values for a numerical config value
72
+ */
73
+ export function bigintConfigHelper(defaultVal?: bigint): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
74
+ return {
75
+ parseEnv: (val: string) => {
76
+ if (val === '') {
77
+ return defaultVal;
78
+ }
79
+ return BigInt(val);
80
+ },
81
+ defaultValue: defaultVal,
82
+ };
83
+ }
84
+
85
+ /**
86
+ * Generates parseEnv for an optional numerical config value.
87
+ */
88
+ export function optionalNumberConfigHelper(): Pick<ConfigMapping, 'parseEnv'> {
89
+ return {
90
+ parseEnv: (val: string | undefined) => {
91
+ if (val !== undefined && val.length > 0) {
92
+ const parsedValue = parseInt(val);
93
+ return Number.isSafeInteger(parsedValue) ? parsedValue : undefined;
94
+ }
95
+ return undefined;
96
+ },
97
+ };
98
+ }
99
+
100
+ /**
101
+ * Generates parseEnv and default values for a boolean config value.
102
+ * @param defaultVal - The default value to use if the environment variable is not set or is invalid
103
+ * @returns Object with parseEnv and default values for a boolean config value
104
+ */
105
+ export function booleanConfigHelper(
106
+ defaultVal = false,
107
+ ): Required<Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & { parseVal: (val: string) => boolean }> {
108
+ const parse = (val: string | boolean) => (typeof val === 'boolean' ? val : parseBooleanEnv(val));
109
+ return {
110
+ parseEnv: parse,
111
+ parseVal: parse,
112
+ defaultValue: defaultVal,
113
+ isBoolean: true,
114
+ };
115
+ }
116
+
117
+ /** Parses an env var as boolean. Returns true only if value is 1, true, or TRUE. */
118
+ export function parseBooleanEnv(val: string | undefined): boolean {
119
+ return val !== undefined && ['1', 'true', 'TRUE'].includes(val);
120
+ }
121
+
122
+ /**
123
+ * Safely parses a number from a string.
124
+ * If the value is not a number or is not a safe integer, the default value is returned.
125
+ * @param value - The string value to parse
126
+ * @param defaultValue - The default value to return
127
+ * @returns Either parsed value or default value
128
+ */
129
+ function safeParseNumber(value: string, defaultValue: number): number {
130
+ const parsedValue = parseInt(value, 10);
131
+ return Number.isSafeInteger(parsedValue) ? parsedValue : defaultValue;
132
+ }
133
+
134
+ /**
135
+ * Picks specific keys from the given configuration mappings.
136
+ *
137
+ * @template T - The type of the full configuration object.
138
+ * @template K - The keys to pick from the configuration object.
139
+ * @param {ConfigMappingsType<T>} configMappings - The full configuration mappings object.
140
+ * @param {K[]} keys - The keys to pick from the configuration mappings.
141
+ * @returns {ConfigMappingsType<Pick<T, K>>} - A new configuration mappings object containing only the specified keys.
142
+ */
143
+ export function pickConfigMappings<T, K extends keyof T>(
144
+ configMappings: ConfigMappingsType<T>,
145
+ keys: K[],
146
+ ): ConfigMappingsType<Pick<T, K>> {
147
+ return Object.fromEntries(keys.map(key => [key, configMappings[key]])) as ConfigMappingsType<Pick<T, K>>;
148
+ }
149
+
150
+ /**
151
+ * Extracts the default configuration values from the given configuration mappings.
152
+ *
153
+ * @template T - The type of the configuration object.
154
+ * @param {ConfigMappingsType<T>} configMappings - The configuration mappings object.
155
+ * @returns {T} - The configuration object with default values.
156
+ */
157
+ export function getDefaultConfig<T>(configMappings: ConfigMappingsType<T>): T {
158
+ const defaultConfig = {} as T;
159
+
160
+ for (const key in configMappings) {
161
+ if (configMappings[key] && configMappings[key].defaultValue !== undefined) {
162
+ (defaultConfig as any)[key] = configMappings[key].defaultValue;
163
+ }
164
+ }
165
+
166
+ return defaultConfig;
167
+ }
@@ -0,0 +1,59 @@
1
+ import { BarretenbergSync, RawBuffer } from '@aztec/bb.js';
2
+
3
+ import { Buffer } from 'buffer';
4
+
5
+ /**
6
+ * AES-128-CBC encryption/decryption.
7
+ */
8
+ export class Aes128 {
9
+ /**
10
+ * Encrypt a buffer using AES-128-CBC.
11
+ * @param data - Data to encrypt.
12
+ * @param iv - AES initialization vector.
13
+ * @param key - Key to encrypt with.
14
+ * @returns Encrypted data.
15
+ */
16
+ public async encryptBufferCBC(data: Uint8Array, iv: Uint8Array, key: Uint8Array) {
17
+ const rawLength = data.length;
18
+ const numPaddingBytes = 16 - (rawLength % 16);
19
+ const paddingBuffer = Buffer.alloc(numPaddingBytes);
20
+ // input num bytes needs to be a multiple of 16 and at least 1 byte
21
+ // node uses PKCS#7-Padding scheme, where padding byte value = the number of padding bytes
22
+ paddingBuffer.fill(numPaddingBytes);
23
+ const input = Buffer.concat([data, paddingBuffer]);
24
+
25
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
26
+ return Buffer.from(
27
+ api.aesEncryptBufferCbc(new RawBuffer(input), new RawBuffer(iv), new RawBuffer(key), input.length),
28
+ );
29
+ }
30
+
31
+ /**
32
+ * Decrypt a buffer using AES-128-CBC.
33
+ * We keep the padding in the returned buffer.
34
+ * @param data - Data to decrypt.
35
+ * @param iv - AES initialization vector.
36
+ * @param key - Key to decrypt with.
37
+ * @returns Decrypted data.
38
+ */
39
+ public async decryptBufferCBCKeepPadding(data: Uint8Array, iv: Uint8Array, key: Uint8Array): Promise<Buffer> {
40
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
41
+ const paddedBuffer = Buffer.from(
42
+ api.aesDecryptBufferCbc(new RawBuffer(data), new RawBuffer(iv), new RawBuffer(key), data.length),
43
+ );
44
+ return paddedBuffer;
45
+ }
46
+
47
+ /**
48
+ * Decrypt a buffer using AES-128-CBC.
49
+ * @param data - Data to decrypt.
50
+ * @param iv - AES initialization vector.
51
+ * @param key - Key to decrypt with.
52
+ * @returns Decrypted data.
53
+ */
54
+ public async decryptBufferCBC(data: Uint8Array, iv: Uint8Array, key: Uint8Array) {
55
+ const paddedBuffer = await this.decryptBufferCBCKeepPadding(data, iv, key);
56
+ const paddingToRemove = paddedBuffer[paddedBuffer.length - 1];
57
+ return paddedBuffer.subarray(0, paddedBuffer.length - paddingToRemove);
58
+ }
59
+ }
@@ -0,0 +1,70 @@
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
+ import { numToInt32BE } from '@aztec/foundation/serialize';
3
+
4
+ import { concatenateUint8Arrays } from '../serialize.js';
5
+ import { EcdsaSignature } from './signature.js';
6
+
7
+ export * from './signature.js';
8
+
9
+ /**
10
+ * ECDSA signature construction and helper operations.
11
+ * TODO: Replace with codegen api on bb.js.
12
+ */
13
+ export class Ecdsa {
14
+ /**
15
+ * Computes a secp256k1 public key from a private key.
16
+ * @param privateKey - Secp256k1 private key.
17
+ * @returns A secp256k1 public key.
18
+ */
19
+ public async computePublicKey(privateKey: Buffer): Promise<Buffer> {
20
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
21
+ const [result] = api.getWasm().callWasmExport('ecdsa__compute_public_key', [privateKey], [64]);
22
+ return Buffer.from(result);
23
+ }
24
+
25
+ /**
26
+ * Constructs an ECDSA signature given a msg and a private key.
27
+ * @param msg - Message over which the signature is constructed.
28
+ * @param privateKey - The secp256k1 private key of the signer.
29
+ * @returns An ECDSA signature of the form (r, s, v).
30
+ */
31
+ public async constructSignature(msg: Uint8Array, privateKey: Buffer) {
32
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
33
+ const messageArray = concatenateUint8Arrays([numToInt32BE(msg.length), msg]);
34
+ const [r, s, v] = api
35
+ .getWasm()
36
+ .callWasmExport('ecdsa__construct_signature_', [messageArray, privateKey], [32, 32, 1]);
37
+ return new EcdsaSignature(Buffer.from(r), Buffer.from(s), Buffer.from(v));
38
+ }
39
+
40
+ /**
41
+ * Recovers a secp256k1 public key from an ECDSA signature (similar to ecrecover).
42
+ * @param msg - Message over which the signature was constructed.
43
+ * @param sig - The ECDSA signature.
44
+ * @returns The secp256k1 public key of the signer.
45
+ */
46
+ public async recoverPublicKey(msg: Uint8Array, sig: EcdsaSignature): Promise<Buffer> {
47
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
48
+ const messageArray = concatenateUint8Arrays([numToInt32BE(msg.length), msg]);
49
+ const [result] = api
50
+ .getWasm()
51
+ .callWasmExport('ecdsa__recover_public_key_from_signature_', [messageArray, sig.r, sig.s, sig.v], [64]);
52
+ return Buffer.from(result);
53
+ }
54
+
55
+ /**
56
+ * Verifies and ECDSA signature given a secp256k1 public key.
57
+ * @param msg - Message over which the signature was constructed.
58
+ * @param pubKey - The secp256k1 public key of the signer.
59
+ * @param sig - The ECDSA signature.
60
+ * @returns True or false.
61
+ */
62
+ public async verifySignature(msg: Uint8Array, pubKey: Buffer, sig: EcdsaSignature) {
63
+ const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
64
+ const messageArray = concatenateUint8Arrays([numToInt32BE(msg.length), msg]);
65
+ const [result] = api
66
+ .getWasm()
67
+ .callWasmExport('ecdsa__verify_signature_', [messageArray, pubKey, sig.r, sig.s, sig.v], [1]);
68
+ return result[0] === 1;
69
+ }
70
+ }
@@ -0,0 +1,100 @@
1
+ import { toBufferBE } from '@aztec/foundation/bigint-buffer';
2
+ import { randomBytes } from '@aztec/foundation/crypto';
3
+ import { Fr } from '@aztec/foundation/fields';
4
+ import { mapTuple } from '@aztec/foundation/serialize';
5
+
6
+ import type { Signature } from '../signature/index.js';
7
+
8
+ /**
9
+ * ECDSA signature used for transactions.
10
+ * @see cpp/barretenberg/cpp/src/barretenberg/crypto/ecdsa/ecdsa.hpp
11
+ */
12
+ export class EcdsaSignature implements Signature {
13
+ constructor(
14
+ /**
15
+ * The r byte-array (32 bytes) in an ECDSA signature.
16
+ */
17
+ public r: Buffer,
18
+ /**
19
+ * The s byte-array (32 bytes) in an ECDSA signature.
20
+ */
21
+ public s: Buffer,
22
+ /**
23
+ * The recovery id (1 byte) in an ECDSA signature.
24
+ */
25
+ public v: Buffer,
26
+ ) {
27
+ if (r.length != 32) {
28
+ throw new Error(`Invalid length of 'r' in ECDSA signature. Expected 32, got ${s.length}`);
29
+ }
30
+ if (s.length != 32) {
31
+ throw new Error(`Invalid length of 's' in ECDSA signature. Expected 32, got ${r.length}`);
32
+ }
33
+ if (v.length != 1) {
34
+ throw new Error(`Invalid length of 'v' in ECDSA signature. Expected 1, got ${v.length}`);
35
+ }
36
+ }
37
+
38
+ /**
39
+ * Converts an ECDSA signature to a buffer.
40
+ * @returns A buffer.
41
+ */
42
+ toBuffer() {
43
+ return Buffer.concat([this.r, this.s, this.v]);
44
+ }
45
+
46
+ /**
47
+ * Deserializes the signature from a buffer.
48
+ * @param buffer - The buffer from which to deserialize the signature.
49
+ * @returns The ECDSA signature
50
+ */
51
+ public static fromBuffer(buffer: Buffer) {
52
+ return new EcdsaSignature(buffer.subarray(0, 32), buffer.subarray(32, 64), buffer.subarray(64, 65));
53
+ }
54
+
55
+ /**
56
+ * Creates a new instance from bigint r and s values.
57
+ * @param r - r.
58
+ * @param s - s.
59
+ * @param v - v.
60
+ * @returns The resulting signature.
61
+ */
62
+ public static fromBigInts(r: bigint, s: bigint, v: number) {
63
+ return new EcdsaSignature(toBufferBE(r, 32), toBufferBE(s, 32), Buffer.from([v]));
64
+ }
65
+
66
+ /**
67
+ * Generate a random ECDSA signature for testing.
68
+ * @returns A randomly generated ECDSA signature (not a valid one).
69
+ */
70
+ public static random() {
71
+ return new EcdsaSignature(randomBytes(32), randomBytes(32), Buffer.from([27]));
72
+ }
73
+
74
+ /**
75
+ * Convert an ECDSA signature to a buffer.
76
+ * @returns A 65-character string of the form 0x<r><s><v>.
77
+ */
78
+ toString() {
79
+ return `0x${this.toBuffer().toString('hex')}`;
80
+ }
81
+
82
+ /**
83
+ * Converts the signature to an array of fields.
84
+ * @param includeV - Determines whether the 'v' term is included
85
+ * @returns The signature components as an array of fields
86
+ */
87
+ toFields(includeV = false): Fr[] {
88
+ const sig = this.toBuffer();
89
+
90
+ const buf1 = Buffer.alloc(32);
91
+ const buf2 = Buffer.alloc(32);
92
+ const buf3 = Buffer.alloc(32);
93
+
94
+ sig.copy(buf1, 1, 0, 31);
95
+ sig.copy(buf2, 1, 31, 62);
96
+ sig.copy(buf3, 1, 62, includeV ? 65 : 64);
97
+
98
+ return mapTuple([buf1, buf2, buf3], Fr.fromBuffer);
99
+ }
100
+ }