@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,290 @@
1
+ /**
2
+ * The BufferReader class provides a utility for reading various data types from a buffer.
3
+ * It supports reading numbers, booleans, byte arrays, Fr and Fq field elements,
4
+ * vectors, arrays, objects, strings, and maps. It maintains an internal index to
5
+ * keep track of the current reading position in the buffer.
6
+ *
7
+ * Usage:
8
+ * Create a new instance of BufferReader with a buffer and an optional offset.
9
+ * Use the provided methods to read desired data types from the buffer.
10
+ * The reading methods automatically advance the internal index.
11
+ *
12
+ * @example
13
+ * const reader = new BufferReader(someBuffer);
14
+ * const num = reader.readNumber();
15
+ * const bool = reader.readBoolean();
16
+ * const byteArray = reader.readBytes(4);
17
+ */ export class BufferReader {
18
+ buffer;
19
+ index;
20
+ constructor(buffer, offset = 0){
21
+ this.buffer = buffer;
22
+ this.index = offset;
23
+ }
24
+ /**
25
+ * Creates a BufferReader instance from either a Buffer or an existing BufferReader.
26
+ * If the input is a Buffer, it creates a new BufferReader with the given buffer.
27
+ * If the input is already a BufferReader, it returns the input unchanged.
28
+ *
29
+ * @param bufferOrReader - A Buffer or BufferReader to initialize the BufferReader.
30
+ * @returns An instance of BufferReader.
31
+ */ static asReader(bufferOrReader) {
32
+ if (bufferOrReader instanceof BufferReader) {
33
+ return bufferOrReader;
34
+ }
35
+ const buf = Buffer.isBuffer(bufferOrReader) ? bufferOrReader : Buffer.from(bufferOrReader.buffer, bufferOrReader.byteOffset, bufferOrReader.byteLength);
36
+ return new BufferReader(buf);
37
+ }
38
+ /** Returns true if the underlying buffer has been consumed completely. */ isEmpty() {
39
+ return this.index === this.buffer.length;
40
+ }
41
+ /**
42
+ * Reads a 32-bit unsigned integer from the buffer at the current index position.
43
+ * Updates the index position by 4 bytes after reading the number.
44
+ *
45
+ * @returns The read 32-bit unsigned integer value.
46
+ */ readNumber() {
47
+ this.#rangeCheck(4);
48
+ this.index += 4;
49
+ return this.buffer.readUint32BE(this.index - 4);
50
+ }
51
+ /**
52
+ * Reads `count` 32-bit unsigned integers from the buffer at the current index position.
53
+ * @param count - The number of 32-bit unsigned integers to read.
54
+ * @returns An array of 32-bit unsigned integers.
55
+ */ readNumbers(count) {
56
+ const result = Array.from({
57
+ length: count
58
+ }, ()=>this.readNumber());
59
+ return result;
60
+ }
61
+ /**
62
+ * Reads a 256-bit unsigned integer from the buffer at the current index position.
63
+ * Updates the index position by 32 bytes after reading the number.
64
+ *
65
+ * Assumes the number is stored in big-endian format.
66
+ *
67
+ * @returns The read 256 bit value as a bigint.
68
+ */ readUInt256() {
69
+ this.#rangeCheck(32);
70
+ let result = BigInt(0);
71
+ for(let i = 0; i < 32; i++){
72
+ result = result << BigInt(8) | BigInt(this.buffer[this.index + i]);
73
+ }
74
+ this.index += 32;
75
+ return result;
76
+ }
77
+ /**
78
+ * Reads a 16-bit unsigned integer from the buffer at the current index position.
79
+ * Updates the index position by 2 bytes after reading the number.
80
+ *
81
+ * @returns The read 16 bit value.
82
+ */ readUInt16() {
83
+ this.#rangeCheck(2);
84
+ this.index += 2;
85
+ return this.buffer.readUInt16BE(this.index - 2);
86
+ }
87
+ /**
88
+ * Reads a 8-bit unsigned integer from the buffer at the current index position.
89
+ * Updates the index position by 1 byte after reading the number.
90
+ *
91
+ * @returns The read 8 bit value.
92
+ */ readUInt8() {
93
+ this.#rangeCheck(1);
94
+ this.index += 1;
95
+ return this.buffer.readUInt8(this.index - 1);
96
+ }
97
+ /**
98
+ * Reads and returns the next boolean value from the buffer.
99
+ * Advances the internal index by 1, treating the byte at the current index as a boolean value.
100
+ * Returns true if the byte is non-zero, false otherwise.
101
+ *
102
+ * @returns A boolean value representing the byte at the current index.
103
+ */ readBoolean() {
104
+ this.#rangeCheck(1);
105
+ this.index += 1;
106
+ return Boolean(this.buffer.at(this.index - 1));
107
+ }
108
+ /**
109
+ * Reads a specified number of bytes from the buffer and returns a new Buffer containing those bytes.
110
+ * Advances the reader's index by the number of bytes read. Throws an error if there are not enough
111
+ * bytes left in the buffer to satisfy the requested number of bytes.
112
+ *
113
+ * @param n - The number of bytes to read from the buffer.
114
+ * @returns A new Buffer containing the read bytes.
115
+ */ readBytes(n) {
116
+ this.#rangeCheck(n);
117
+ this.index += n;
118
+ return Buffer.from(this.buffer.subarray(this.index - n, this.index));
119
+ }
120
+ /** Reads until the end of the buffer. */ readToEnd() {
121
+ const result = this.buffer.subarray(this.index);
122
+ this.index = this.buffer.length;
123
+ return result;
124
+ }
125
+ /**
126
+ * Reads a vector of numbers from the buffer and returns it as an array of numbers.
127
+ * The method utilizes the 'readVector' method, passing a deserializer that reads numbers.
128
+ *
129
+ * @returns An array of numbers representing the vector read from the buffer.
130
+ */ readNumberVector() {
131
+ return this.readVector({
132
+ fromBuffer: (reader)=>reader.readNumber()
133
+ });
134
+ }
135
+ /**
136
+ * Reads a vector of fixed size from the buffer and deserializes its elements using the provided itemDeserializer object.
137
+ * The 'itemDeserializer' object should have a 'fromBuffer' method that takes a BufferReader instance and returns the deserialized element.
138
+ * The method first reads the size of the vector (a number) from the buffer, then iterates through its elements,
139
+ * deserializing each one using the 'fromBuffer' method of 'itemDeserializer'.
140
+ *
141
+ * @param itemDeserializer - Object with 'fromBuffer' method to deserialize vector elements.
142
+ * @returns An array of deserialized elements of type T.
143
+ */ readVector(itemDeserializer) {
144
+ const size = this.readNumber();
145
+ const result = new Array(size);
146
+ for(let i = 0; i < size; i++){
147
+ result[i] = itemDeserializer.fromBuffer(this);
148
+ }
149
+ return result;
150
+ }
151
+ /**
152
+ * Reads a vector of fixed size from the buffer and deserializes its elements using the provided itemDeserializer object.
153
+ * The 'itemDeserializer' object should have a 'fromBuffer' method that takes a BufferReader instance and returns the deserialized element.
154
+ * The method first reads the size of the vector (a number) from the buffer, then iterates through its elements,
155
+ * deserializing each one using the 'fromBuffer' method of 'itemDeserializer'.
156
+ *
157
+ * @param itemDeserializer - Object with 'fromBuffer' method to deserialize vector elements.
158
+ * @returns An array of deserialized elements of type T.
159
+ */ readVectorUint8Prefix(itemDeserializer) {
160
+ const size = this.readUInt8();
161
+ const result = new Array(size);
162
+ for(let i = 0; i < size; i++){
163
+ result[i] = itemDeserializer.fromBuffer(this);
164
+ }
165
+ return result;
166
+ }
167
+ /**
168
+ * Read an array of a fixed size with elements of type T from the buffer.
169
+ * The 'itemDeserializer' object should have a 'fromBuffer' method that takes a BufferReader instance as input,
170
+ * and returns an instance of the desired deserialized data type T.
171
+ * This method will call the 'fromBuffer' method for each element in the array and return the resulting array.
172
+ *
173
+ * @param size - The fixed number of elements in the array.
174
+ * @param itemDeserializer - An object with a 'fromBuffer' method to deserialize individual elements of type T.
175
+ * @returns An array of instances of type T.
176
+ */ readArray(size, itemDeserializer) {
177
+ const result = Array.from({
178
+ length: size
179
+ }, ()=>itemDeserializer.fromBuffer(this));
180
+ return result;
181
+ }
182
+ /**
183
+ * Read a variable sized Buffer array where elements are represented by length + data.
184
+ * The method consecutively looks for a number which is the size of the proceeding buffer,
185
+ * then reads the bytes until it reaches the end of the reader's internal buffer.
186
+ * NOTE: if `size` is not provided, this will run to the end of the reader's buffer.
187
+ * @param size - Size of the buffer array in bytes (full remaining buffer length if left empty).
188
+ * @returns An array of variable sized buffers.
189
+ */ readBufferArray(size = -1) {
190
+ const result = [];
191
+ const end = size >= 0 ? this.index + size : this.buffer.length;
192
+ this.#rangeCheck(end - this.index);
193
+ while(this.index < end){
194
+ const item = this.readBuffer();
195
+ result.push(item);
196
+ }
197
+ // Ensure that all bytes have been read.
198
+ if (this.index !== end) {
199
+ throw new Error(`Reader buffer was not fully consumed. Consumed up to ${this.index} bytes. End of data: ${end} bytes.`);
200
+ }
201
+ return result;
202
+ }
203
+ /**
204
+ * Reads a serialized object from a buffer and returns the deserialized object using the given deserializer.
205
+ *
206
+ * @typeparam T - The type of the deserialized object.
207
+ * @param deserializer - An object with a 'fromBuffer' method that takes a BufferReader instance and returns an instance of the deserialized object.
208
+ * @returns The deserialized object of type T.
209
+ */ readObject(deserializer) {
210
+ return deserializer.fromBuffer(this);
211
+ }
212
+ /**
213
+ * Returns a Buffer containing the next n bytes from the current buffer without modifying the reader's index position.
214
+ * If n is not provided or exceeds the remaining length of the buffer, it returns all bytes from the current position till the end of the buffer.
215
+ *
216
+ * @param n - The number of bytes to peek from the current buffer. (Optional).
217
+ * @returns A Buffer with the next n bytes or the remaining bytes if n is not provided or exceeds the buffer length.
218
+ */ peekBytes(n) {
219
+ this.#rangeCheck(n || 0);
220
+ return this.buffer.subarray(this.index, n ? this.index + n : undefined);
221
+ }
222
+ /**
223
+ * Reads a string from the buffer and returns it.
224
+ * The method first reads the size of the string, then reads the corresponding
225
+ * number of bytes from the buffer and converts them to a string.
226
+ *
227
+ * @returns The read string from the buffer.
228
+ */ readString() {
229
+ return this.readBuffer().toString();
230
+ }
231
+ /**
232
+ * Reads a buffer from the current position of the reader and advances the index.
233
+ * The method first reads the size (number) of bytes to be read, and then returns
234
+ * a Buffer with that size containing the bytes. Useful for reading variable-length
235
+ * binary data encoded as (size, data) format.
236
+ *
237
+ * @returns A Buffer containing the read bytes.
238
+ */ readBuffer() {
239
+ const size = this.readNumber();
240
+ this.#rangeCheck(size);
241
+ return this.readBytes(size);
242
+ }
243
+ /**
244
+ * Reads a buffer from the current position of the reader and advances the index.
245
+ * The method first reads the size (number) of bytes to be read, and then returns
246
+ * a Buffer with that size containing the bytes. Useful for reading variable-length
247
+ * binary data encoded as (size, data) format.
248
+ *
249
+ * @returns A Buffer containing the read bytes.
250
+ */ readUint8Array() {
251
+ const size = this.readNumber();
252
+ this.#rangeCheck(size);
253
+ return this.readBytes(size);
254
+ }
255
+ /**
256
+ * Reads and constructs a map object from the current buffer using the provided deserializer.
257
+ * The method reads the number of entries in the map, followed by iterating through each key-value pair.
258
+ * The key is read as a string, while the value is obtained using the passed deserializer's `fromBuffer` method.
259
+ * The resulting map object is returned, containing all the key-value pairs read from the buffer.
260
+ *
261
+ * @param deserializer - An object with a `fromBuffer` method to deserialize the values in the map.
262
+ * @returns A map object with string keys and deserialized values based on the provided deserializer.
263
+ */ readMap(deserializer) {
264
+ const numEntries = this.readNumber();
265
+ const map = {};
266
+ for(let i = 0; i < numEntries; i++){
267
+ const key = this.readString();
268
+ const value = this.readObject(deserializer);
269
+ map[key] = value;
270
+ }
271
+ return map;
272
+ }
273
+ /**
274
+ * Get the length of the reader's buffer.
275
+ * @returns The length of the underlying reader's buffer.
276
+ */ getLength() {
277
+ return this.buffer.length;
278
+ }
279
+ /**
280
+ * Gets bytes remaining to be read from the buffer.
281
+ * @returns Bytes remaining to be read from the buffer.
282
+ */ remainingBytes() {
283
+ return this.buffer.length - this.index;
284
+ }
285
+ #rangeCheck(numBytes) {
286
+ if (this.index + numBytes > this.buffer.length) {
287
+ throw new Error(`Attempted to read beyond buffer length. Start index: ${this.index}, Num bytes to read: ${numBytes}, Buffer length: ${this.buffer.length}`);
288
+ }
289
+ }
290
+ }
@@ -0,0 +1,112 @@
1
+ import { Fq, type Fr } from '../fields/fields.js';
2
+ import type { Tuple } from './types.js';
3
+ /**
4
+ * The FieldReader class provides a utility for reading various data types from a field array.
5
+ *
6
+ * Usage:
7
+ * Create a new instance of FieldReader with an array of fields and an optional offset.
8
+ * Use the provided methods to read desired data types from the field array.
9
+ * The reading methods automatically advance the internal index.
10
+ */
11
+ export declare class FieldReader {
12
+ private fields;
13
+ private index;
14
+ private length;
15
+ constructor(fields: Fr[], offset?: number);
16
+ /**
17
+ * Creates a FieldReader instance from either a field array or an existing FieldReader.
18
+ *
19
+ * @param fields - A field array or FieldReader to initialize the FieldReader.
20
+ * @returns An instance of FieldReader.
21
+ */
22
+ static asReader(fields: Fr[] | FieldReader): FieldReader;
23
+ /**
24
+ * Returns the current cursor position.
25
+ *
26
+ * @returns The current cursor position.
27
+ */
28
+ get cursor(): number;
29
+ /**
30
+ * Skips the next n fields.
31
+ *
32
+ * @param n - The number of fields to skip.
33
+ */
34
+ skip(n: number): void;
35
+ /**
36
+ * Reads a single field from the array.
37
+ *
38
+ * @returns A field.
39
+ */
40
+ readField(): Fr;
41
+ /**
42
+ * Peeks at the next field without advancing the cursor.
43
+ *
44
+ * @returns A field.
45
+ */
46
+ peekField(): Fr;
47
+ /**
48
+ * Reads a Fq from the array.
49
+ *
50
+ * @returns An Fq.
51
+ */
52
+ readFq(): Fq;
53
+ /**
54
+ * Reads and returns the next boolean value from the field array.
55
+ * Advances the internal index by 1, treating the field at the current index as a boolean value.
56
+ * Returns true if the field is non-zero, false otherwise.
57
+ * Throw if the value is not 0 or 1.
58
+ *
59
+ * @returns A boolean value representing the field at the current index.
60
+ */
61
+ readBoolean(): boolean;
62
+ /**
63
+ * Reads a 32-bit unsigned integer from the field array at the current index position.
64
+ * Updates the index position by 1 after reading the number.
65
+ * Throw if the value is greater than 2 ** 32.
66
+ *
67
+ * @returns The read 32-bit unsigned integer value.
68
+ */
69
+ readU32(): number;
70
+ /**
71
+ * Read an array of a fixed size field array.
72
+ *
73
+ * @param size - The fixed number of fields in the array.
74
+ * @returns An array of fields.
75
+ */
76
+ readFieldArray<N extends number>(size: N): Tuple<Fr, N>;
77
+ /**
78
+ * Read an array of a fixed size with elements of type T from the field array.
79
+ * The 'itemDeserializer' object should have a 'fromFields' method that takes a FieldReader instance as input,
80
+ * and returns an instance of the desired deserialized data type T.
81
+ * This method will call the 'fromFields' method for each element in the array and return the resulting array.
82
+ *
83
+ * @param size - The fixed number of elements in the array.
84
+ * @param itemDeserializer - An object with a 'fromFields' method to deserialize individual elements of type T.
85
+ * @returns An array of instances of type T.
86
+ */
87
+ readArray<T, N extends number>(size: N, itemDeserializer: {
88
+ /**
89
+ * A function for deserializing data from a FieldReader instance.
90
+ */
91
+ fromFields: (reader: FieldReader) => T;
92
+ }): Tuple<T, N>;
93
+ /**
94
+ * Reads a serialized object from a field array and returns the deserialized object using the given deserializer.
95
+ *
96
+ * @typeparam T - The type of the deserialized object.
97
+ * @param deserializer - An object with a 'fromFields' method that takes a FieldReader instance and returns an instance of the deserialized object.
98
+ * @returns The deserialized object of type T.
99
+ */
100
+ readObject<T>(deserializer: {
101
+ /**
102
+ * A method that takes a FieldReader instance and returns an instance of the deserialized data type.
103
+ */
104
+ fromFields: (reader: FieldReader) => T;
105
+ }): T;
106
+ /**
107
+ * Returns whether the reader has finished reading all fields.
108
+ * @returns A bool.
109
+ */
110
+ isFinished(): boolean;
111
+ }
112
+ //# sourceMappingURL=field_reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/field_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;GAOG;AACH,qBAAa,WAAW;IAGV,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;gBACH,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,SAAI;IAQ5C;;;;;OAKG;WACW,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW;IAQ/D;;;;OAIG;IACH,IAAW,MAAM,WAEhB;IAED;;;;OAIG;IACI,IAAI,CAAC,CAAC,EAAE,MAAM;IAOrB;;;;OAIG;IACI,SAAS,IAAI,EAAE;IAOtB;;;;OAIG;IACI,SAAS,IAAI,EAAE;IAOtB;;;;OAIG;IACI,MAAM,IAAI,EAAE;IAInB;;;;;;;OAOG;IACI,WAAW,IAAI,OAAO;IAS7B;;;;;;OAMG;IACI,OAAO,IAAI,MAAM;IASxB;;;;;OAKG;IACI,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAQ9D;;;;;;;;;OASG;IACI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAClC,IAAI,EAAE,CAAC,EACP,gBAAgB,EAAE;QAChB;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,CAAC;KACxC,GACA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAKd;;;;;;OAMG;IACI,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QACjC;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,CAAC;KACxC,GAAG,CAAC;IAIL;;;OAGG;IACI,UAAU,IAAI,OAAO;CAG7B"}
@@ -0,0 +1,147 @@
1
+ import { Fq } from '../fields/fields.js';
2
+ /**
3
+ * The FieldReader class provides a utility for reading various data types from a field array.
4
+ *
5
+ * Usage:
6
+ * Create a new instance of FieldReader with an array of fields and an optional offset.
7
+ * Use the provided methods to read desired data types from the field array.
8
+ * The reading methods automatically advance the internal index.
9
+ */ export class FieldReader {
10
+ fields;
11
+ index;
12
+ length;
13
+ constructor(fields, offset = 0){
14
+ this.fields = fields;
15
+ this.index = offset;
16
+ this.length = fields.length;
17
+ if (offset >= this.length) {
18
+ throw new Error('Offset out of bounds.');
19
+ }
20
+ }
21
+ /**
22
+ * Creates a FieldReader instance from either a field array or an existing FieldReader.
23
+ *
24
+ * @param fields - A field array or FieldReader to initialize the FieldReader.
25
+ * @returns An instance of FieldReader.
26
+ */ static asReader(fields) {
27
+ if (fields instanceof FieldReader) {
28
+ return fields;
29
+ }
30
+ return new FieldReader(fields);
31
+ }
32
+ /**
33
+ * Returns the current cursor position.
34
+ *
35
+ * @returns The current cursor position.
36
+ */ get cursor() {
37
+ return this.index;
38
+ }
39
+ /**
40
+ * Skips the next n fields.
41
+ *
42
+ * @param n - The number of fields to skip.
43
+ */ skip(n) {
44
+ if (this.index + n > this.length) {
45
+ throw new Error('Not enough fields to be consumed.');
46
+ }
47
+ this.index += n;
48
+ }
49
+ /**
50
+ * Reads a single field from the array.
51
+ *
52
+ * @returns A field.
53
+ */ readField() {
54
+ if (this.index === this.length) {
55
+ throw new Error('Not enough fields to be consumed.');
56
+ }
57
+ return this.fields[this.index++];
58
+ }
59
+ /**
60
+ * Peeks at the next field without advancing the cursor.
61
+ *
62
+ * @returns A field.
63
+ */ peekField() {
64
+ if (this.index === this.length) {
65
+ throw new Error('Not enough fields to be consumed.');
66
+ }
67
+ return this.fields[this.index];
68
+ }
69
+ /**
70
+ * Reads a Fq from the array.
71
+ *
72
+ * @returns An Fq.
73
+ */ readFq() {
74
+ return Fq.fromHighLow(this.readField(), this.readField());
75
+ }
76
+ /**
77
+ * Reads and returns the next boolean value from the field array.
78
+ * Advances the internal index by 1, treating the field at the current index as a boolean value.
79
+ * Returns true if the field is non-zero, false otherwise.
80
+ * Throw if the value is not 0 or 1.
81
+ *
82
+ * @returns A boolean value representing the field at the current index.
83
+ */ readBoolean() {
84
+ const field = this.readField();
85
+ const value = field.toBigInt();
86
+ if (value > 1n) {
87
+ throw new Error('Field is not a boolean.');
88
+ }
89
+ return value == 1n;
90
+ }
91
+ /**
92
+ * Reads a 32-bit unsigned integer from the field array at the current index position.
93
+ * Updates the index position by 1 after reading the number.
94
+ * Throw if the value is greater than 2 ** 32.
95
+ *
96
+ * @returns The read 32-bit unsigned integer value.
97
+ */ readU32() {
98
+ const field = this.readField();
99
+ const value = field.toBigInt();
100
+ if (value >= 1n << 32n) {
101
+ throw new Error('Field is not a u32.');
102
+ }
103
+ return Number(value);
104
+ }
105
+ /**
106
+ * Read an array of a fixed size field array.
107
+ *
108
+ * @param size - The fixed number of fields in the array.
109
+ * @returns An array of fields.
110
+ */ readFieldArray(size) {
111
+ const result = [];
112
+ for(let i = 0; i < size; ++i){
113
+ result.push(this.readField());
114
+ }
115
+ return result;
116
+ }
117
+ /**
118
+ * Read an array of a fixed size with elements of type T from the field array.
119
+ * The 'itemDeserializer' object should have a 'fromFields' method that takes a FieldReader instance as input,
120
+ * and returns an instance of the desired deserialized data type T.
121
+ * This method will call the 'fromFields' method for each element in the array and return the resulting array.
122
+ *
123
+ * @param size - The fixed number of elements in the array.
124
+ * @param itemDeserializer - An object with a 'fromFields' method to deserialize individual elements of type T.
125
+ * @returns An array of instances of type T.
126
+ */ readArray(size, itemDeserializer) {
127
+ const result = Array.from({
128
+ length: size
129
+ }, ()=>itemDeserializer.fromFields(this));
130
+ return result;
131
+ }
132
+ /**
133
+ * Reads a serialized object from a field array and returns the deserialized object using the given deserializer.
134
+ *
135
+ * @typeparam T - The type of the deserialized object.
136
+ * @param deserializer - An object with a 'fromFields' method that takes a FieldReader instance and returns an instance of the deserialized object.
137
+ * @returns The deserialized object of type T.
138
+ */ readObject(deserializer) {
139
+ return deserializer.fromFields(this);
140
+ }
141
+ /**
142
+ * Returns whether the reader has finished reading all fields.
143
+ * @returns A bool.
144
+ */ isFinished() {
145
+ return this.index >= this.length;
146
+ }
147
+ }
@@ -0,0 +1,105 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { Fr } from '../fields/fields.js';
4
+ import type { Tuple } from './types.js';
5
+ /**
6
+ * Convert a boolean value to its corresponding byte representation in a Buffer of size 1.
7
+ * The function takes a boolean value and writes it into a new buffer as either 1 (true) or 0 (false).
8
+ * This method is useful for converting a boolean value into a binary format that can be stored or transmitted easily.
9
+ *
10
+ * @param b - The boolean value to be converted.
11
+ * @returns A Buffer containing the byte representation of the input boolean value.
12
+ */
13
+ export declare function boolToByte(b: boolean): Buffer;
14
+ /**
15
+ * @param n - The input number to be converted to a big-endian unsigned 16-bit integer Buffer.
16
+ * @param bufferSize - Optional, the size of the output Buffer (default is 2).
17
+ * @returns A Buffer containing the big-endian unsigned 16-bit integer representation of the input number.
18
+ */
19
+ export declare function numToUInt16BE(n: number, bufferSize?: number): Buffer;
20
+ /**
21
+ * Convert a number into a 4-byte little-endian unsigned integer buffer.
22
+ * The input number is serialized as an unsigned 32-bit integer in little-endian byte order,
23
+ * and returned as a Buffer of specified size (defaults to 4).
24
+ * If the provided bufferSize is greater than 4, the additional bytes will be padded with zeros.
25
+ *
26
+ * @param n - The number to be converted into a little-endian unsigned integer buffer.
27
+ * @param bufferSize - Optional, the size of the output buffer (default value is 4).
28
+ * @returns A Buffer containing the serialized little-endian unsigned integer representation of the input number.
29
+ */
30
+ export declare function numToUInt32LE(n: number, bufferSize?: number): Buffer;
31
+ /**
32
+ * Convert a number to a big-endian unsigned 32-bit integer Buffer.
33
+ * This function takes a number and an optional buffer size as input and creates a Buffer with the specified size (defaults to 4) containing the big-endian representation of the input number as an unsigned 32-bit integer. Note that the bufferSize should be greater than or equal to 4, otherwise the output Buffer might truncate the serialized value.
34
+ *
35
+ * @param n - The input number to be converted to a big-endian unsigned 32-bit integer Buffer.
36
+ * @param bufferSize - Optional, the size of the output Buffer (default is 4).
37
+ * @returns A Buffer containing the big-endian unsigned 32-bit integer representation of the input number.
38
+ */
39
+ export declare function numToUInt32BE(n: number, bufferSize?: number): Buffer;
40
+ /**
41
+ * Serialize a number into a big-endian signed 32-bit integer Buffer with the specified buffer size.
42
+ * This function converts the input number into its binary representation and stores it in a Buffer
43
+ * with the provided buffer size. By default, the buffer size is set to 4 bytes which represents a 32-bit integer.
44
+ * The function will use the last 4 bytes of the buffer to store the serialized number. If the input number
45
+ * is outside the range of a 32-bit signed integer, the resulting serialization may be incorrect due to truncation.
46
+ *
47
+ * @param n - The number to be serialized as a signed 32-bit integer.
48
+ * @param bufferSize - Optional, the size of the output Buffer (default is 4 bytes).
49
+ * @returns A Buffer containing the serialized big-endian signed 32-bit integer.
50
+ */
51
+ export declare function numToInt32BE(n: number, bufferSize?: number): Buffer;
52
+ /**
53
+ * Convert a number to an 8-bit unsigned integer and return it as a Buffer of length 1.
54
+ * The input number is written as an 8-bit unsigned integer into the buffer. This function
55
+ * is useful for converting small numeric values to a standardized binary format that can be
56
+ * easily stored or transmitted.
57
+ *
58
+ * @param n - The number to be converted to an 8-bit unsigned integer.
59
+ * @returns A Buffer containing the 8-bit unsigned integer representation of the input number.
60
+ */
61
+ export declare function numToUInt8(n: number): Buffer;
62
+ /**
63
+ * Adds a 4-byte byte-length prefix to a buffer.
64
+ * @param buf - The input Buffer to be prefixed
65
+ * @returns A Buffer with 4-byte byte-length prefix.
66
+ */
67
+ export declare function prefixBufferWithLength(buf: Buffer): Buffer;
68
+ /**
69
+ * Parse a buffer as a big integer.
70
+ */
71
+ export declare function toBigInt(buf: Buffer): bigint;
72
+ /**
73
+ * Stores full 256 bits of information in 2 fields.
74
+ * @param buf - 32 bytes of data
75
+ * @returns 2 field elements
76
+ */
77
+ export declare function to2Fields(buf: Buffer): [Fr, Fr];
78
+ /**
79
+ * Reconstructs the original 32 bytes of data from 2 field elements.
80
+ * @param field1 - First field element
81
+ * @param field2 - Second field element
82
+ * @returns 32 bytes of data as a Buffer
83
+ */
84
+ export declare function from2Fields(field1: Fr, field2: Fr): Buffer;
85
+ /**
86
+ * Truncates SHA hashes to match Noir's truncated version
87
+ * @param buf - 32 bytes of data
88
+ * @returns 31 bytes of data padded to 32
89
+ */
90
+ export declare function truncateAndPad(buf: Buffer): Buffer;
91
+ /**
92
+ * Stores 248 bits of information in 1 field.
93
+ * @param buf - 32 or 31 bytes of data
94
+ * @returns 1 field element
95
+ */
96
+ export declare function toTruncField(buf: Buffer): Fr;
97
+ /**
98
+ * Reconstructs the original 31 bytes of data from 1 truncated field element.
99
+ * @param field - field element
100
+ * @returns 31 bytes of data as a Buffer
101
+ */
102
+ export declare function fromTruncField(field: Fr): Buffer;
103
+ export declare function fromFieldsTuple(fields: Tuple<Fr, 2>): Buffer;
104
+ export declare function toHumanReadable(buf: Buffer, maxLen?: number): string;
105
+ //# sourceMappingURL=free_funcs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"free_funcs.d.ts","sourceRoot":"","sources":["../../src/serialize/free_funcs.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,UAIpC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,UAItD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,UAItD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,UAItD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,UAIrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,UAKnC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,UAIjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAU/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAW1D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAW5C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,CAMhD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAE5D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpE"}