@aztec-labs/foundation 6.0.0-nightly.20260829

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 (805) hide show
  1. package/README.md +1 -0
  2. package/dest/array/array.d.ts +68 -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 +3 -0
  6. package/dest/array/index.d.ts.map +1 -0
  7. package/dest/array/index.js +2 -0
  8. package/dest/array/sorted_array.d.ts +15 -0
  9. package/dest/array/sorted_array.d.ts.map +1 -0
  10. package/dest/array/sorted_array.js +109 -0
  11. package/dest/async-map/index.d.ts +13 -0
  12. package/dest/async-map/index.d.ts.map +1 -0
  13. package/dest/async-map/index.js +17 -0
  14. package/dest/async-pool/index.d.ts +3 -0
  15. package/dest/async-pool/index.d.ts.map +1 -0
  16. package/dest/async-pool/index.js +48 -0
  17. package/dest/bigint/index.d.ts +7 -0
  18. package/dest/bigint/index.d.ts.map +1 -0
  19. package/dest/bigint/index.js +15 -0
  20. package/dest/bigint-buffer/index.d.ts +40 -0
  21. package/dest/bigint-buffer/index.d.ts.map +1 -0
  22. package/dest/bigint-buffer/index.js +81 -0
  23. package/dest/branded-types/block_number.d.ts +56 -0
  24. package/dest/branded-types/block_number.d.ts.map +1 -0
  25. package/dest/branded-types/block_number.js +89 -0
  26. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  27. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  28. package/dest/branded-types/buffer32_hash.js +12 -0
  29. package/dest/branded-types/checkpoint_number.d.ts +60 -0
  30. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  31. package/dest/branded-types/checkpoint_number.js +88 -0
  32. package/dest/branded-types/epoch.d.ts +42 -0
  33. package/dest/branded-types/epoch.d.ts.map +1 -0
  34. package/dest/branded-types/epoch.js +59 -0
  35. package/dest/branded-types/index.d.ts +8 -0
  36. package/dest/branded-types/index.d.ts.map +1 -0
  37. package/dest/branded-types/index.js +6 -0
  38. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  39. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  40. package/dest/branded-types/index_within_checkpoint.js +59 -0
  41. package/dest/branded-types/slot.d.ts +45 -0
  42. package/dest/branded-types/slot.d.ts.map +1 -0
  43. package/dest/branded-types/slot.js +62 -0
  44. package/dest/branded-types/types.d.ts +5 -0
  45. package/dest/branded-types/types.d.ts.map +1 -0
  46. package/dest/branded-types/types.js +1 -0
  47. package/dest/buffer/buffer16.d.ts +82 -0
  48. package/dest/buffer/buffer16.d.ts.map +1 -0
  49. package/dest/buffer/buffer16.js +102 -0
  50. package/dest/buffer/buffer32.d.ts +54 -0
  51. package/dest/buffer/buffer32.d.ts.map +1 -0
  52. package/dest/buffer/buffer32.js +83 -0
  53. package/dest/buffer/index.d.ts +4 -0
  54. package/dest/buffer/index.d.ts.map +1 -0
  55. package/dest/buffer/index.js +3 -0
  56. package/dest/buffer/utils.d.ts +3 -0
  57. package/dest/buffer/utils.d.ts.map +1 -0
  58. package/dest/buffer/utils.js +7 -0
  59. package/dest/collection/array.d.ts +135 -0
  60. package/dest/collection/array.d.ts.map +1 -0
  61. package/dest/collection/array.js +302 -0
  62. package/dest/collection/index.d.ts +5 -0
  63. package/dest/collection/index.d.ts.map +1 -0
  64. package/dest/collection/index.js +4 -0
  65. package/dest/collection/lru_map.d.ts +41 -0
  66. package/dest/collection/lru_map.d.ts.map +1 -0
  67. package/dest/collection/lru_map.js +119 -0
  68. package/dest/collection/lru_set.d.ts +35 -0
  69. package/dest/collection/lru_set.d.ts.map +1 -0
  70. package/dest/collection/lru_set.js +95 -0
  71. package/dest/collection/object.d.ts +30 -0
  72. package/dest/collection/object.d.ts.map +1 -0
  73. package/dest/collection/object.js +57 -0
  74. package/dest/committable/committable.d.ts +28 -0
  75. package/dest/committable/committable.d.ts.map +1 -0
  76. package/dest/committable/committable.js +36 -0
  77. package/dest/committable/index.d.ts +2 -0
  78. package/dest/committable/index.d.ts.map +1 -0
  79. package/dest/committable/index.js +1 -0
  80. package/dest/config/env_var.d.ts +2 -0
  81. package/dest/config/env_var.d.ts.map +1 -0
  82. package/dest/config/env_var.js +1 -0
  83. package/dest/config/index.d.ts +154 -0
  84. package/dest/config/index.d.ts.map +1 -0
  85. package/dest/config/index.js +272 -0
  86. package/dest/config/network_config.d.ts +28 -0
  87. package/dest/config/network_config.d.ts.map +1 -0
  88. package/dest/config/network_config.js +14 -0
  89. package/dest/config/network_name.d.ts +3 -0
  90. package/dest/config/network_name.d.ts.map +1 -0
  91. package/dest/config/network_name.js +19 -0
  92. package/dest/config/parse-env.d.ts +3 -0
  93. package/dest/config/parse-env.d.ts.map +1 -0
  94. package/dest/config/parse-env.js +7 -0
  95. package/dest/config/secret_value.d.ts +28 -0
  96. package/dest/config/secret_value.d.ts.map +1 -0
  97. package/dest/config/secret_value.js +36 -0
  98. package/dest/crypto/aes128/index.d.ts +33 -0
  99. package/dest/crypto/aes128/index.d.ts.map +1 -0
  100. package/dest/crypto/aes128/index.js +71 -0
  101. package/dest/crypto/bls/bn254_keystore.d.ts +129 -0
  102. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  103. package/dest/crypto/bls/bn254_keystore.js +206 -0
  104. package/dest/crypto/bls/index.d.ts +13 -0
  105. package/dest/crypto/bls/index.d.ts.map +1 -0
  106. package/dest/crypto/bls/index.js +87 -0
  107. package/dest/crypto/bn254/index.d.ts +39 -0
  108. package/dest/crypto/bn254/index.d.ts.map +1 -0
  109. package/dest/crypto/bn254/index.js +56 -0
  110. package/dest/crypto/ecdsa/index.d.ts +39 -0
  111. package/dest/crypto/ecdsa/index.d.ts.map +1 -0
  112. package/dest/crypto/ecdsa/index.js +102 -0
  113. package/dest/crypto/ecdsa/signature.d.ts +69 -0
  114. package/dest/crypto/ecdsa/signature.d.ts.map +1 -0
  115. package/dest/crypto/ecdsa/signature.js +92 -0
  116. package/dest/crypto/grumpkin/index.d.ts +42 -0
  117. package/dest/crypto/grumpkin/index.d.ts.map +1 -0
  118. package/dest/crypto/grumpkin/index.js +160 -0
  119. package/dest/crypto/keccak/index.d.ts +26 -0
  120. package/dest/crypto/keccak/index.d.ts.map +1 -0
  121. package/dest/crypto/keccak/index.js +248 -0
  122. package/dest/crypto/keys/index.d.ts +4 -0
  123. package/dest/crypto/keys/index.d.ts.map +1 -0
  124. package/dest/crypto/keys/index.js +34 -0
  125. package/dest/crypto/pedersen/index.d.ts +2 -0
  126. package/dest/crypto/pedersen/index.d.ts.map +1 -0
  127. package/dest/crypto/pedersen/index.js +1 -0
  128. package/dest/crypto/pedersen/pedersen.noble.d.ts +9 -0
  129. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -0
  130. package/dest/crypto/pedersen/pedersen.noble.js +558 -0
  131. package/dest/crypto/pedersen/pedersen.wasm.d.ts +19 -0
  132. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -0
  133. package/dest/crypto/pedersen/pedersen.wasm.js +51 -0
  134. package/dest/crypto/poseidon/index.d.ts +23 -0
  135. package/dest/crypto/poseidon/index.d.ts.map +1 -0
  136. package/dest/crypto/poseidon/index.js +71 -0
  137. package/dest/crypto/random/index.d.ts +23 -0
  138. package/dest/crypto/random/index.d.ts.map +1 -0
  139. package/dest/crypto/random/index.js +38 -0
  140. package/dest/crypto/random/randomness_singleton.d.ts +24 -0
  141. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -0
  142. package/dest/crypto/random/randomness_singleton.js +55 -0
  143. package/dest/crypto/schnorr/index.d.ts +32 -0
  144. package/dest/crypto/schnorr/index.d.ts.map +1 -0
  145. package/dest/crypto/schnorr/index.js +60 -0
  146. package/dest/crypto/schnorr/signature.d.ts +48 -0
  147. package/dest/crypto/schnorr/signature.d.ts.map +1 -0
  148. package/dest/crypto/schnorr/signature.js +77 -0
  149. package/dest/crypto/secp256k1/index.d.ts +30 -0
  150. package/dest/crypto/secp256k1/index.d.ts.map +1 -0
  151. package/dest/crypto/secp256k1/index.js +121 -0
  152. package/dest/crypto/secp256k1-signer/index.d.ts +3 -0
  153. package/dest/crypto/secp256k1-signer/index.d.ts.map +1 -0
  154. package/dest/crypto/secp256k1-signer/index.js +2 -0
  155. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +24 -0
  156. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -0
  157. package/dest/crypto/secp256k1-signer/secp256k1_signer.js +30 -0
  158. package/dest/crypto/secp256k1-signer/utils.d.ts +102 -0
  159. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -0
  160. package/dest/crypto/secp256k1-signer/utils.js +196 -0
  161. package/dest/crypto/sha256/index.d.ts +37 -0
  162. package/dest/crypto/sha256/index.d.ts.map +1 -0
  163. package/dest/crypto/sha256/index.js +208 -0
  164. package/dest/crypto/sha512/index.d.ts +9 -0
  165. package/dest/crypto/sha512/index.d.ts.map +1 -0
  166. package/dest/crypto/sha512/index.js +12 -0
  167. package/dest/crypto/signature/index.d.ts +17 -0
  168. package/dest/crypto/signature/index.d.ts.map +1 -0
  169. package/dest/crypto/signature/index.js +3 -0
  170. package/dest/crypto/sync/index.d.ts +3 -0
  171. package/dest/crypto/sync/index.d.ts.map +1 -0
  172. package/dest/crypto/sync/index.js +4 -0
  173. package/dest/crypto/sync/pedersen/index.d.ts +19 -0
  174. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -0
  175. package/dest/crypto/sync/pedersen/index.js +45 -0
  176. package/dest/crypto/sync/poseidon/index.d.ts +23 -0
  177. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -0
  178. package/dest/crypto/sync/poseidon/index.js +60 -0
  179. package/dest/curves/bls12/field.d.ts +148 -0
  180. package/dest/curves/bls12/field.d.ts.map +1 -0
  181. package/dest/curves/bls12/field.js +357 -0
  182. package/dest/curves/bls12/index.d.ts +3 -0
  183. package/dest/curves/bls12/index.d.ts.map +1 -0
  184. package/dest/curves/bls12/index.js +2 -0
  185. package/dest/curves/bls12/point.d.ts +229 -0
  186. package/dest/curves/bls12/point.d.ts.map +1 -0
  187. package/dest/curves/bls12/point.js +400 -0
  188. package/dest/curves/bn254/field.d.ts +185 -0
  189. package/dest/curves/bn254/field.d.ts.map +1 -0
  190. package/dest/curves/bn254/field.js +420 -0
  191. package/dest/curves/bn254/index.d.ts +3 -0
  192. package/dest/curves/bn254/index.d.ts.map +1 -0
  193. package/dest/curves/bn254/index.js +2 -0
  194. package/dest/curves/bn254/point.d.ts +54 -0
  195. package/dest/curves/bn254/point.d.ts.map +1 -0
  196. package/dest/curves/bn254/point.js +143 -0
  197. package/dest/curves/grumpkin/index.d.ts +10 -0
  198. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  199. package/dest/curves/grumpkin/index.js +3 -0
  200. package/dest/curves/grumpkin/point.d.ts +168 -0
  201. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  202. package/dest/curves/grumpkin/point.js +263 -0
  203. package/dest/decorators/index.d.ts +2 -0
  204. package/dest/decorators/index.d.ts.map +1 -0
  205. package/dest/decorators/index.js +1 -0
  206. package/dest/decorators/memoize.d.ts +2 -0
  207. package/dest/decorators/memoize.d.ts.map +1 -0
  208. package/dest/decorators/memoize.js +11 -0
  209. package/dest/error/index.d.ts +21 -0
  210. package/dest/error/index.d.ts.map +1 -0
  211. package/dest/error/index.js +17 -0
  212. package/dest/eth-address/index.d.ts +143 -0
  213. package/dest/eth-address/index.d.ts.map +1 -0
  214. package/dest/eth-address/index.js +224 -0
  215. package/dest/eth-signature/eth_signature.d.ts +65 -0
  216. package/dest/eth-signature/eth_signature.d.ts.map +1 -0
  217. package/dest/eth-signature/eth_signature.js +110 -0
  218. package/dest/eth-signature/index.d.ts +2 -0
  219. package/dest/eth-signature/index.d.ts.map +1 -0
  220. package/dest/eth-signature/index.js +1 -0
  221. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  222. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  223. package/dest/fifo/fifo_frame_reader.js +91 -0
  224. package/dest/fifo/index.d.ts +2 -0
  225. package/dest/fifo/index.d.ts.map +1 -0
  226. package/dest/fifo/index.js +1 -0
  227. package/dest/fifo_set/fifo_set.d.ts +15 -0
  228. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  229. package/dest/fifo_set/fifo_set.js +39 -0
  230. package/dest/fifo_set/index.d.ts +2 -0
  231. package/dest/fifo_set/index.d.ts.map +1 -0
  232. package/dest/fifo_set/index.js +1 -0
  233. package/dest/fs/index.d.ts +3 -0
  234. package/dest/fs/index.d.ts.map +1 -0
  235. package/dest/fs/index.js +2 -0
  236. package/dest/fs/run_in_dir.d.ts +2 -0
  237. package/dest/fs/run_in_dir.d.ts.map +1 -0
  238. package/dest/fs/run_in_dir.js +31 -0
  239. package/dest/fs/try_rm_dir.d.ts +3 -0
  240. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  241. package/dest/fs/try_rm_dir.js +16 -0
  242. package/dest/iterable/all.d.ts +9 -0
  243. package/dest/iterable/all.d.ts.map +1 -0
  244. package/dest/iterable/all.js +18 -0
  245. package/dest/iterable/filter.d.ts +10 -0
  246. package/dest/iterable/filter.d.ts.map +1 -0
  247. package/dest/iterable/filter.js +48 -0
  248. package/dest/iterable/first.d.ts +8 -0
  249. package/dest/iterable/first.d.ts.map +1 -0
  250. package/dest/iterable/first.js +11 -0
  251. package/dest/iterable/index.d.ts +9 -0
  252. package/dest/iterable/index.d.ts.map +1 -0
  253. package/dest/iterable/index.js +8 -0
  254. package/dest/iterable/isAsyncIt.d.ts +7 -0
  255. package/dest/iterable/isAsyncIt.d.ts.map +1 -0
  256. package/dest/iterable/isAsyncIt.js +7 -0
  257. package/dest/iterable/map.d.ts +12 -0
  258. package/dest/iterable/map.d.ts.map +1 -0
  259. package/dest/iterable/map.js +36 -0
  260. package/dest/iterable/peek.d.ts +19 -0
  261. package/dest/iterable/peek.d.ts.map +1 -0
  262. package/dest/iterable/peek.js +33 -0
  263. package/dest/iterable/sort.d.ts +14 -0
  264. package/dest/iterable/sort.d.ts.map +1 -0
  265. package/dest/iterable/sort.js +15 -0
  266. package/dest/iterable/take.d.ts +10 -0
  267. package/dest/iterable/take.d.ts.map +1 -0
  268. package/dest/iterable/take.js +32 -0
  269. package/dest/iterable/toArray.d.ts +2 -0
  270. package/dest/iterable/toArray.d.ts.map +1 -0
  271. package/dest/iterable/toArray.js +7 -0
  272. package/dest/iterator/filter.d.ts +3 -0
  273. package/dest/iterator/filter.d.ts.map +1 -0
  274. package/dest/iterator/filter.js +7 -0
  275. package/dest/iterator/index.d.ts +2 -0
  276. package/dest/iterator/index.d.ts.map +1 -0
  277. package/dest/iterator/index.js +1 -0
  278. package/dest/jest/env.js +48 -0
  279. package/dest/jest/setup.js +34 -0
  280. package/dest/jest/setupAfterEnv.js +3 -0
  281. package/dest/json-rpc/client/fetch.d.ts +37 -0
  282. package/dest/json-rpc/client/fetch.d.ts.map +1 -0
  283. package/dest/json-rpc/client/fetch.js +67 -0
  284. package/dest/json-rpc/client/index.d.ts +3 -0
  285. package/dest/json-rpc/client/index.d.ts.map +1 -0
  286. package/dest/json-rpc/client/index.js +2 -0
  287. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +33 -0
  288. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -0
  289. package/dest/json-rpc/client/safe_json_rpc_client.js +218 -0
  290. package/dest/json-rpc/client/undici.d.ts +16 -0
  291. package/dest/json-rpc/client/undici.d.ts.map +1 -0
  292. package/dest/json-rpc/client/undici.js +112 -0
  293. package/dest/json-rpc/convert.d.ts +20 -0
  294. package/dest/json-rpc/convert.d.ts.map +1 -0
  295. package/dest/json-rpc/convert.js +40 -0
  296. package/dest/json-rpc/errors.d.ts +4 -0
  297. package/dest/json-rpc/errors.d.ts.map +1 -0
  298. package/dest/json-rpc/errors.js +6 -0
  299. package/dest/json-rpc/fixtures/class_a.d.ts +13 -0
  300. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -0
  301. package/dest/json-rpc/fixtures/class_a.js +20 -0
  302. package/dest/json-rpc/fixtures/class_b.d.ts +13 -0
  303. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -0
  304. package/dest/json-rpc/fixtures/class_b.js +20 -0
  305. package/dest/json-rpc/fixtures/test_state.d.ts +85 -0
  306. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -0
  307. package/dest/json-rpc/fixtures/test_state.js +171 -0
  308. package/dest/json-rpc/index.d.ts +3 -0
  309. package/dest/json-rpc/index.d.ts.map +1 -0
  310. package/dest/json-rpc/index.js +2 -0
  311. package/dest/json-rpc/js_utils.d.ts +13 -0
  312. package/dest/json-rpc/js_utils.d.ts.map +1 -0
  313. package/dest/json-rpc/js_utils.js +16 -0
  314. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  315. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  316. package/dest/json-rpc/server/api_key_auth.js +57 -0
  317. package/dest/json-rpc/server/index.d.ts +3 -0
  318. package/dest/json-rpc/server/index.d.ts.map +1 -0
  319. package/dest/json-rpc/server/index.js +2 -0
  320. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +177 -0
  321. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -0
  322. package/dest/json-rpc/server/safe_json_rpc_server.js +570 -0
  323. package/dest/json-rpc/test/index.d.ts +2 -0
  324. package/dest/json-rpc/test/index.d.ts.map +1 -0
  325. package/dest/json-rpc/test/index.js +1 -0
  326. package/dest/json-rpc/test/integration.d.ts +14 -0
  327. package/dest/json-rpc/test/integration.d.ts.map +1 -0
  328. package/dest/json-rpc/test/integration.js +21 -0
  329. package/dest/log/aws-logger-config.d.ts +8 -0
  330. package/dest/log/aws-logger-config.d.ts.map +1 -0
  331. package/dest/log/aws-logger-config.js +55 -0
  332. package/dest/log/bigint-utils.d.ts +5 -0
  333. package/dest/log/bigint-utils.d.ts.map +1 -0
  334. package/dest/log/bigint-utils.js +21 -0
  335. package/dest/log/console.d.ts +11 -0
  336. package/dest/log/console.d.ts.map +1 -0
  337. package/dest/log/console.js +36 -0
  338. package/dest/log/gcloud-logger-config.d.ts +13 -0
  339. package/dest/log/gcloud-logger-config.d.ts.map +1 -0
  340. package/dest/log/gcloud-logger-config.js +61 -0
  341. package/dest/log/index.d.ts +7 -0
  342. package/dest/log/index.d.ts.map +1 -0
  343. package/dest/log/index.js +6 -0
  344. package/dest/log/libp2p_logger.d.ts +10 -0
  345. package/dest/log/libp2p_logger.d.ts.map +1 -0
  346. package/dest/log/libp2p_logger.js +76 -0
  347. package/dest/log/log-filters.d.ts +20 -0
  348. package/dest/log/log-filters.d.ts.map +1 -0
  349. package/dest/log/log-filters.js +73 -0
  350. package/dest/log/log-levels.d.ts +3 -0
  351. package/dest/log/log-levels.d.ts.map +1 -0
  352. package/dest/log/log-levels.js +10 -0
  353. package/dest/log/log_fn.d.ts +7 -0
  354. package/dest/log/log_fn.d.ts.map +1 -0
  355. package/dest/log/log_fn.js +1 -0
  356. package/dest/log/noir_debug_log_util.d.ts +14 -0
  357. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  358. package/dest/log/noir_debug_log_util.js +14 -0
  359. package/dest/log/pino-logger-server.d.ts +9 -0
  360. package/dest/log/pino-logger-server.d.ts.map +1 -0
  361. package/dest/log/pino-logger-server.js +18 -0
  362. package/dest/log/pino-logger.d.ts +86 -0
  363. package/dest/log/pino-logger.d.ts.map +1 -0
  364. package/dest/log/pino-logger.js +347 -0
  365. package/dest/message/index.d.ts +32 -0
  366. package/dest/message/index.d.ts.map +1 -0
  367. package/dest/message/index.js +27 -0
  368. package/dest/mutex/index.d.ts +53 -0
  369. package/dest/mutex/index.d.ts.map +1 -0
  370. package/dest/mutex/index.js +78 -0
  371. package/dest/mutex/mutex_database.d.ts +10 -0
  372. package/dest/mutex/mutex_database.d.ts.map +1 -0
  373. package/dest/mutex/mutex_database.js +4 -0
  374. package/dest/noir/index.d.ts +2 -0
  375. package/dest/noir/index.d.ts.map +1 -0
  376. package/dest/noir/index.js +1 -0
  377. package/dest/noir/noir_package_config.d.ts +44 -0
  378. package/dest/noir/noir_package_config.d.ts.map +1 -0
  379. package/dest/noir/noir_package_config.js +36 -0
  380. package/dest/number/index.d.ts +3 -0
  381. package/dest/number/index.d.ts.map +1 -0
  382. package/dest/number/index.js +12 -0
  383. package/dest/profiler/index.d.ts +2 -0
  384. package/dest/profiler/index.d.ts.map +1 -0
  385. package/dest/profiler/index.js +1 -0
  386. package/dest/profiler/profiler.d.ts +8 -0
  387. package/dest/profiler/profiler.d.ts.map +1 -0
  388. package/dest/profiler/profiler.js +97 -0
  389. package/dest/promise/index.d.ts +3 -0
  390. package/dest/promise/index.d.ts.map +1 -0
  391. package/dest/promise/index.js +2 -0
  392. package/dest/promise/running-promise.d.ts +53 -0
  393. package/dest/promise/running-promise.d.ts.map +1 -0
  394. package/dest/promise/running-promise.js +122 -0
  395. package/dest/promise/utils.d.ts +25 -0
  396. package/dest/promise/utils.d.ts.map +1 -0
  397. package/dest/promise/utils.js +40 -0
  398. package/dest/queue/base_memory_queue.d.ts +65 -0
  399. package/dest/queue/base_memory_queue.d.ts.map +1 -0
  400. package/dest/queue/base_memory_queue.js +116 -0
  401. package/dest/queue/batch_queue.d.ts +47 -0
  402. package/dest/queue/batch_queue.d.ts.map +1 -0
  403. package/dest/queue/batch_queue.js +106 -0
  404. package/dest/queue/bounded_serial_queue.d.ts +56 -0
  405. package/dest/queue/bounded_serial_queue.d.ts.map +1 -0
  406. package/dest/queue/bounded_serial_queue.js +84 -0
  407. package/dest/queue/fifo_memory_queue.d.ts +21 -0
  408. package/dest/queue/fifo_memory_queue.d.ts.map +1 -0
  409. package/dest/queue/fifo_memory_queue.js +29 -0
  410. package/dest/queue/index.d.ts +7 -0
  411. package/dest/queue/index.d.ts.map +1 -0
  412. package/dest/queue/index.js +6 -0
  413. package/dest/queue/priority_memory_queue.d.ts +13 -0
  414. package/dest/queue/priority_memory_queue.d.ts.map +1 -0
  415. package/dest/queue/priority_memory_queue.js +16 -0
  416. package/dest/queue/priority_queue.d.ts +14 -0
  417. package/dest/queue/priority_queue.d.ts.map +1 -0
  418. package/dest/queue/priority_queue.js +29 -0
  419. package/dest/queue/semaphore.d.ts +27 -0
  420. package/dest/queue/semaphore.d.ts.map +1 -0
  421. package/dest/queue/semaphore.js +26 -0
  422. package/dest/queue/serial_queue.d.ts +49 -0
  423. package/dest/queue/serial_queue.d.ts.map +1 -0
  424. package/dest/queue/serial_queue.js +74 -0
  425. package/dest/retry/index.d.ts +83 -0
  426. package/dest/retry/index.d.ts.map +1 -0
  427. package/dest/retry/index.js +146 -0
  428. package/dest/running-promise/index.d.ts +2 -0
  429. package/dest/running-promise/index.d.ts.map +1 -0
  430. package/dest/running-promise/index.js +1 -0
  431. package/dest/schemas/api.d.ts +23 -0
  432. package/dest/schemas/api.d.ts.map +1 -0
  433. package/dest/schemas/api.js +9 -0
  434. package/dest/schemas/index.d.ts +6 -0
  435. package/dest/schemas/index.d.ts.map +1 -0
  436. package/dest/schemas/index.js +5 -0
  437. package/dest/schemas/parse.d.ts +9 -0
  438. package/dest/schemas/parse.d.ts.map +1 -0
  439. package/dest/schemas/parse.js +23 -0
  440. package/dest/schemas/schemas.d.ts +46 -0
  441. package/dest/schemas/schemas.d.ts.map +1 -0
  442. package/dest/schemas/schemas.js +56 -0
  443. package/dest/schemas/types.d.ts +33 -0
  444. package/dest/schemas/types.d.ts.map +1 -0
  445. package/dest/schemas/types.js +25 -0
  446. package/dest/schemas/utils.d.ts +47 -0
  447. package/dest/schemas/utils.d.ts.map +1 -0
  448. package/dest/schemas/utils.js +54 -0
  449. package/dest/serialize/buffer_reader.d.ts +274 -0
  450. package/dest/serialize/buffer_reader.d.ts.map +1 -0
  451. package/dest/serialize/buffer_reader.js +359 -0
  452. package/dest/serialize/buffer_sink.d.ts +134 -0
  453. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  454. package/dest/serialize/buffer_sink.js +297 -0
  455. package/dest/serialize/field_reader.d.ts +121 -0
  456. package/dest/serialize/field_reader.d.ts.map +1 -0
  457. package/dest/serialize/field_reader.js +164 -0
  458. package/dest/serialize/free_funcs.d.ts +107 -0
  459. package/dest/serialize/free_funcs.d.ts.map +1 -0
  460. package/dest/serialize/free_funcs.js +183 -0
  461. package/dest/serialize/index.d.ts +8 -0
  462. package/dest/serialize/index.d.ts.map +1 -0
  463. package/dest/serialize/index.js +7 -0
  464. package/dest/serialize/serialize.d.ts +168 -0
  465. package/dest/serialize/serialize.d.ts.map +1 -0
  466. package/dest/serialize/serialize.js +258 -0
  467. package/dest/serialize/type_registry.d.ts +23 -0
  468. package/dest/serialize/type_registry.d.ts.map +1 -0
  469. package/dest/serialize/type_registry.js +61 -0
  470. package/dest/serialize/types.d.ts +33 -0
  471. package/dest/serialize/types.d.ts.map +1 -0
  472. package/dest/serialize/types.js +21 -0
  473. package/dest/sleep/index.d.ts +54 -0
  474. package/dest/sleep/index.d.ts.map +1 -0
  475. package/dest/sleep/index.js +80 -0
  476. package/dest/string/index.d.ts +18 -0
  477. package/dest/string/index.d.ts.map +1 -0
  478. package/dest/string/index.js +62 -0
  479. package/dest/testing/files/index.d.ts +20 -0
  480. package/dest/testing/files/index.d.ts.map +1 -0
  481. package/dest/testing/files/index.js +59 -0
  482. package/dest/testing/formatting.d.ts +4 -0
  483. package/dest/testing/formatting.d.ts.map +1 -0
  484. package/dest/testing/formatting.js +3 -0
  485. package/dest/testing/index.d.ts +5 -0
  486. package/dest/testing/index.d.ts.map +1 -0
  487. package/dest/testing/index.js +4 -0
  488. package/dest/testing/port_allocator.d.ts +10 -0
  489. package/dest/testing/port_allocator.d.ts.map +1 -0
  490. package/dest/testing/port_allocator.js +29 -0
  491. package/dest/testing/snapshot_serializer.d.ts +5 -0
  492. package/dest/testing/snapshot_serializer.d.ts.map +1 -0
  493. package/dest/testing/snapshot_serializer.js +32 -0
  494. package/dest/testing/test_data.d.ts +7 -0
  495. package/dest/testing/test_data.d.ts.map +1 -0
  496. package/dest/testing/test_data.js +29 -0
  497. package/dest/timer/date.d.ts +39 -0
  498. package/dest/timer/date.d.ts.map +1 -0
  499. package/dest/timer/date.js +62 -0
  500. package/dest/timer/elapsed.d.ts +13 -0
  501. package/dest/timer/elapsed.d.ts.map +1 -0
  502. package/dest/timer/elapsed.js +25 -0
  503. package/dest/timer/index.d.ts +5 -0
  504. package/dest/timer/index.d.ts.map +1 -0
  505. package/dest/timer/index.js +4 -0
  506. package/dest/timer/timeout.d.ts +56 -0
  507. package/dest/timer/timeout.d.ts.map +1 -0
  508. package/dest/timer/timeout.js +113 -0
  509. package/dest/timer/timer.d.ts +37 -0
  510. package/dest/timer/timer.d.ts.map +1 -0
  511. package/dest/timer/timer.js +40 -0
  512. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +111 -0
  513. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -0
  514. package/dest/transport/dispatch/create_dispatch_proxy.js +59 -0
  515. package/dest/transport/dispatch/messages.d.ts +52 -0
  516. package/dest/transport/dispatch/messages.d.ts.map +1 -0
  517. package/dest/transport/dispatch/messages.js +13 -0
  518. package/dest/transport/index.d.ts +10 -0
  519. package/dest/transport/index.d.ts.map +1 -0
  520. package/dest/transport/index.js +9 -0
  521. package/dest/transport/interface/connector.d.ts +8 -0
  522. package/dest/transport/interface/connector.d.ts.map +1 -0
  523. package/dest/transport/interface/connector.js +3 -0
  524. package/dest/transport/interface/listener.d.ts +12 -0
  525. package/dest/transport/interface/listener.d.ts.map +1 -0
  526. package/dest/transport/interface/listener.js +4 -0
  527. package/dest/transport/interface/socket.d.ts +13 -0
  528. package/dest/transport/interface/socket.d.ts.map +1 -0
  529. package/dest/transport/interface/socket.js +7 -0
  530. package/dest/transport/interface/transferable.d.ts +68 -0
  531. package/dest/transport/interface/transferable.d.ts.map +1 -0
  532. package/dest/transport/interface/transferable.js +63 -0
  533. package/dest/transport/node/index.d.ts +3 -0
  534. package/dest/transport/node/index.d.ts.map +1 -0
  535. package/dest/transport/node/index.js +2 -0
  536. package/dest/transport/node/node_connector.d.ts +27 -0
  537. package/dest/transport/node/node_connector.d.ts.map +1 -0
  538. package/dest/transport/node/node_connector.js +26 -0
  539. package/dest/transport/node/node_connector_socket.d.ts +41 -0
  540. package/dest/transport/node/node_connector_socket.d.ts.map +1 -0
  541. package/dest/transport/node/node_connector_socket.js +44 -0
  542. package/dest/transport/node/node_listener.d.ts +25 -0
  543. package/dest/transport/node/node_listener.d.ts.map +1 -0
  544. package/dest/transport/node/node_listener.js +26 -0
  545. package/dest/transport/node/node_listener_socket.d.ts +36 -0
  546. package/dest/transport/node/node_listener_socket.d.ts.map +1 -0
  547. package/dest/transport/node/node_listener_socket.js +40 -0
  548. package/dest/transport/transport_client.d.ts +60 -0
  549. package/dest/transport/transport_client.d.ts.map +1 -0
  550. package/dest/transport/transport_client.js +96 -0
  551. package/dest/transport/transport_server.d.ts +47 -0
  552. package/dest/transport/transport_server.d.ts.map +1 -0
  553. package/dest/transport/transport_server.js +114 -0
  554. package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
  555. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  556. package/dest/trees/balanced_merkle_tree_root.js +50 -0
  557. package/dest/trees/hasher.d.ts +40 -0
  558. package/dest/trees/hasher.d.ts.map +1 -0
  559. package/dest/trees/hasher.js +10 -0
  560. package/dest/trees/index.d.ts +13 -0
  561. package/dest/trees/index.d.ts.map +1 -0
  562. package/dest/trees/index.js +12 -0
  563. package/dest/trees/indexed_merkle_tree.d.ts +11 -0
  564. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -0
  565. package/dest/trees/indexed_merkle_tree.js +27 -0
  566. package/dest/trees/indexed_merkle_tree_calculator.d.ts +21 -0
  567. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -0
  568. package/dest/trees/indexed_merkle_tree_calculator.js +87 -0
  569. package/dest/trees/indexed_tree_leaf.d.ts +55 -0
  570. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -0
  571. package/dest/trees/indexed_tree_leaf.js +5 -0
  572. package/dest/trees/membership_witness.d.ts +63 -0
  573. package/dest/trees/membership_witness.d.ts.map +1 -0
  574. package/dest/trees/membership_witness.js +83 -0
  575. package/dest/trees/merkle_tree.d.ts +16 -0
  576. package/dest/trees/merkle_tree.d.ts.map +1 -0
  577. package/dest/trees/merkle_tree.js +58 -0
  578. package/dest/trees/merkle_tree_calculator.d.ts +16 -0
  579. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -0
  580. package/dest/trees/merkle_tree_calculator.js +57 -0
  581. package/dest/trees/sibling_path.d.ts +96 -0
  582. package/dest/trees/sibling_path.d.ts.map +1 -0
  583. package/dest/trees/sibling_path.js +139 -0
  584. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  585. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  586. package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
  587. package/dest/trees/unbalanced_merkle_tree_root.d.ts +27 -0
  588. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  589. package/dest/trees/unbalanced_merkle_tree_root.js +83 -0
  590. package/dest/trees/unbalanced_tree_store.d.ts +24 -0
  591. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -0
  592. package/dest/trees/unbalanced_tree_store.js +148 -0
  593. package/dest/types/index.d.ts +68 -0
  594. package/dest/types/index.d.ts.map +1 -0
  595. package/dest/types/index.js +24 -0
  596. package/dest/url/index.d.ts +9 -0
  597. package/dest/url/index.d.ts.map +1 -0
  598. package/dest/url/index.js +62 -0
  599. package/dest/validation/index.d.ts +9 -0
  600. package/dest/validation/index.d.ts.map +1 -0
  601. package/dest/validation/index.js +15 -0
  602. package/package.json +213 -0
  603. package/src/array/array.ts +147 -0
  604. package/src/array/index.ts +2 -0
  605. package/src/array/sorted_array.ts +138 -0
  606. package/src/async-map/index.ts +18 -0
  607. package/src/async-pool/index.ts +51 -0
  608. package/src/bigint/index.ts +20 -0
  609. package/src/bigint-buffer/index.ts +92 -0
  610. package/src/branded-types/block_number.ts +135 -0
  611. package/src/branded-types/buffer32_hash.ts +38 -0
  612. package/src/branded-types/checkpoint_number.ts +130 -0
  613. package/src/branded-types/epoch.ts +88 -0
  614. package/src/branded-types/index.ts +8 -0
  615. package/src/branded-types/index_within_checkpoint.ts +88 -0
  616. package/src/branded-types/slot.ts +93 -0
  617. package/src/branded-types/types.ts +2 -0
  618. package/src/buffer/buffer16.ts +135 -0
  619. package/src/buffer/buffer32.ts +116 -0
  620. package/src/buffer/index.ts +3 -0
  621. package/src/buffer/utils.ts +8 -0
  622. package/src/collection/array.ts +351 -0
  623. package/src/collection/index.ts +4 -0
  624. package/src/collection/lru_map.ts +143 -0
  625. package/src/collection/lru_set.ts +115 -0
  626. package/src/collection/object.ts +89 -0
  627. package/src/committable/committable.ts +46 -0
  628. package/src/committable/index.ts +1 -0
  629. package/src/config/env_var.ts +412 -0
  630. package/src/config/index.ts +419 -0
  631. package/src/config/network_config.ts +21 -0
  632. package/src/config/network_name.ts +28 -0
  633. package/src/config/parse-env.ts +4 -0
  634. package/src/config/secret_value.ts +49 -0
  635. package/src/crypto/aes128/index.ts +77 -0
  636. package/src/crypto/bls/bn254_keystore.ts +276 -0
  637. package/src/crypto/bls/index.ts +76 -0
  638. package/src/crypto/bn254/index.ts +64 -0
  639. package/src/crypto/ecdsa/index.ts +88 -0
  640. package/src/crypto/ecdsa/signature.ts +100 -0
  641. package/src/crypto/grumpkin/index.ts +90 -0
  642. package/src/crypto/keccak/index.ts +283 -0
  643. package/src/crypto/keys/index.ts +26 -0
  644. package/src/crypto/pedersen/index.ts +1 -0
  645. package/src/crypto/pedersen/pedersen.noble.ts +573 -0
  646. package/src/crypto/pedersen/pedersen.wasm.ts +52 -0
  647. package/src/crypto/poseidon/index.ts +83 -0
  648. package/src/crypto/random/index.ts +47 -0
  649. package/src/crypto/random/randomness_singleton.ts +64 -0
  650. package/src/crypto/schnorr/index.ts +61 -0
  651. package/src/crypto/schnorr/signature.ts +87 -0
  652. package/src/crypto/secp256k1/index.ts +61 -0
  653. package/src/crypto/secp256k1-signer/index.ts +2 -0
  654. package/src/crypto/secp256k1-signer/secp256k1_signer.ts +38 -0
  655. package/src/crypto/secp256k1-signer/utils.ts +244 -0
  656. package/src/crypto/sha256/index.ts +194 -0
  657. package/src/crypto/sha512/index.ts +16 -0
  658. package/src/crypto/signature/index.ts +17 -0
  659. package/src/crypto/sync/index.ts +6 -0
  660. package/src/crypto/sync/pedersen/index.ts +46 -0
  661. package/src/crypto/sync/poseidon/index.ts +72 -0
  662. package/src/curves/bls12/field.ts +456 -0
  663. package/src/curves/bls12/index.ts +2 -0
  664. package/src/curves/bls12/point.ts +450 -0
  665. package/src/curves/bn254/field.ts +531 -0
  666. package/src/curves/bn254/index.ts +2 -0
  667. package/src/curves/bn254/point.ts +170 -0
  668. package/src/curves/grumpkin/index.ts +11 -0
  669. package/src/curves/grumpkin/point.ts +300 -0
  670. package/src/decorators/index.ts +1 -0
  671. package/src/decorators/memoize.ts +11 -0
  672. package/src/error/index.ts +22 -0
  673. package/src/eth-address/index.ts +269 -0
  674. package/src/eth-signature/eth_signature.ts +155 -0
  675. package/src/eth-signature/index.ts +1 -0
  676. package/src/fifo/fifo_frame_reader.ts +113 -0
  677. package/src/fifo/index.ts +1 -0
  678. package/src/fifo_set/fifo_set.ts +52 -0
  679. package/src/fifo_set/index.ts +1 -0
  680. package/src/fs/index.ts +2 -0
  681. package/src/fs/run_in_dir.ts +33 -0
  682. package/src/fs/try_rm_dir.ts +15 -0
  683. package/src/iterable/all.ts +32 -0
  684. package/src/iterable/filter.ts +77 -0
  685. package/src/iterable/first.ts +14 -0
  686. package/src/iterable/index.ts +8 -0
  687. package/src/iterable/isAsyncIt.ts +8 -0
  688. package/src/iterable/map.ts +66 -0
  689. package/src/iterable/peek.ts +58 -0
  690. package/src/iterable/sort.ts +39 -0
  691. package/src/iterable/take.ts +54 -0
  692. package/src/iterable/toArray.ts +9 -0
  693. package/src/iterator/filter.ts +11 -0
  694. package/src/iterator/index.ts +1 -0
  695. package/src/jest/env.mjs +52 -0
  696. package/src/jest/setup.mjs +38 -0
  697. package/src/jest/setupAfterEnv.mjs +3 -0
  698. package/src/json-rpc/README.md +55 -0
  699. package/src/json-rpc/client/fetch.ts +98 -0
  700. package/src/json-rpc/client/index.ts +2 -0
  701. package/src/json-rpc/client/safe_json_rpc_client.ts +283 -0
  702. package/src/json-rpc/client/undici.ts +128 -0
  703. package/src/json-rpc/convert.ts +52 -0
  704. package/src/json-rpc/errors.ts +6 -0
  705. package/src/json-rpc/fixtures/class_a.ts +18 -0
  706. package/src/json-rpc/fixtures/class_b.ts +18 -0
  707. package/src/json-rpc/fixtures/test_state.ts +143 -0
  708. package/src/json-rpc/index.ts +2 -0
  709. package/src/json-rpc/js_utils.ts +21 -0
  710. package/src/json-rpc/server/api_key_auth.ts +63 -0
  711. package/src/json-rpc/server/index.ts +2 -0
  712. package/src/json-rpc/server/safe_json_rpc_server.ts +626 -0
  713. package/src/json-rpc/test/index.ts +1 -0
  714. package/src/json-rpc/test/integration.ts +35 -0
  715. package/src/log/aws-logger-config.ts +32 -0
  716. package/src/log/bigint-utils.ts +25 -0
  717. package/src/log/console.ts +42 -0
  718. package/src/log/gcloud-logger-config.ts +72 -0
  719. package/src/log/index.ts +6 -0
  720. package/src/log/libp2p_logger.ts +93 -0
  721. package/src/log/log-filters.ts +81 -0
  722. package/src/log/log-levels.ts +3 -0
  723. package/src/log/log_fn.ts +5 -0
  724. package/src/log/noir_debug_log_util.ts +21 -0
  725. package/src/log/pino-logger-server.ts +25 -0
  726. package/src/log/pino-logger.ts +406 -0
  727. package/src/message/index.ts +47 -0
  728. package/src/mutex/index.ts +84 -0
  729. package/src/mutex/mutex_database.ts +11 -0
  730. package/src/noir/index.ts +1 -0
  731. package/src/noir/noir_package_config.ts +66 -0
  732. package/src/number/index.ts +14 -0
  733. package/src/profiler/index.ts +1 -0
  734. package/src/profiler/profiler.ts +125 -0
  735. package/src/promise/index.ts +2 -0
  736. package/src/promise/running-promise.ts +138 -0
  737. package/src/promise/utils.ts +60 -0
  738. package/src/queue/base_memory_queue.ts +138 -0
  739. package/src/queue/batch_queue.ts +121 -0
  740. package/src/queue/bounded_serial_queue.ts +103 -0
  741. package/src/queue/fifo_memory_queue.ts +39 -0
  742. package/src/queue/index.ts +6 -0
  743. package/src/queue/priority_memory_queue.ts +20 -0
  744. package/src/queue/priority_queue.ts +34 -0
  745. package/src/queue/semaphore.ts +38 -0
  746. package/src/queue/serial_queue.ts +86 -0
  747. package/src/retry/index.ts +185 -0
  748. package/src/running-promise/index.ts +1 -0
  749. package/src/schemas/api.ts +47 -0
  750. package/src/schemas/index.ts +5 -0
  751. package/src/schemas/parse.ts +32 -0
  752. package/src/schemas/schemas.ts +93 -0
  753. package/src/schemas/types.ts +36 -0
  754. package/src/schemas/utils.ts +91 -0
  755. package/src/serialize/buffer_reader.ts +472 -0
  756. package/src/serialize/buffer_sink.ts +350 -0
  757. package/src/serialize/field_reader.ts +208 -0
  758. package/src/serialize/free_funcs.ts +198 -0
  759. package/src/serialize/index.ts +7 -0
  760. package/src/serialize/serialize.ts +320 -0
  761. package/src/serialize/type_registry.ts +75 -0
  762. package/src/serialize/types.ts +40 -0
  763. package/src/sleep/index.ts +90 -0
  764. package/src/string/index.ts +80 -0
  765. package/src/testing/files/index.ts +74 -0
  766. package/src/testing/formatting.ts +3 -0
  767. package/src/testing/index.ts +4 -0
  768. package/src/testing/port_allocator.ts +31 -0
  769. package/src/testing/snapshot_serializer.ts +33 -0
  770. package/src/testing/test_data.ts +36 -0
  771. package/src/timer/date.ts +82 -0
  772. package/src/timer/elapsed.ts +23 -0
  773. package/src/timer/index.ts +4 -0
  774. package/src/timer/timeout.ts +136 -0
  775. package/src/timer/timer.ts +48 -0
  776. package/src/transport/dispatch/create_dispatch_proxy.ts +151 -0
  777. package/src/transport/dispatch/messages.ts +58 -0
  778. package/src/transport/index.ts +9 -0
  779. package/src/transport/interface/connector.ts +8 -0
  780. package/src/transport/interface/listener.ts +15 -0
  781. package/src/transport/interface/socket.ts +14 -0
  782. package/src/transport/interface/transferable.ts +125 -0
  783. package/src/transport/node/index.ts +2 -0
  784. package/src/transport/node/node_connector.ts +30 -0
  785. package/src/transport/node/node_connector_socket.ts +52 -0
  786. package/src/transport/node/node_listener.ts +34 -0
  787. package/src/transport/node/node_listener_socket.ts +48 -0
  788. package/src/transport/transport_client.ts +130 -0
  789. package/src/transport/transport_server.ts +111 -0
  790. package/src/trees/balanced_merkle_tree_root.ts +65 -0
  791. package/src/trees/hasher.ts +51 -0
  792. package/src/trees/index.ts +12 -0
  793. package/src/trees/indexed_merkle_tree.ts +40 -0
  794. package/src/trees/indexed_merkle_tree_calculator.ts +98 -0
  795. package/src/trees/indexed_tree_leaf.ts +56 -0
  796. package/src/trees/membership_witness.ts +112 -0
  797. package/src/trees/merkle_tree.ts +75 -0
  798. package/src/trees/merkle_tree_calculator.ts +66 -0
  799. package/src/trees/sibling_path.ts +177 -0
  800. package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
  801. package/src/trees/unbalanced_merkle_tree_root.ts +112 -0
  802. package/src/trees/unbalanced_tree_store.ts +161 -0
  803. package/src/types/index.ts +103 -0
  804. package/src/url/index.ts +72 -0
  805. package/src/validation/index.ts +18 -0
@@ -0,0 +1,350 @@
1
+ /**
2
+ * A value that can be appended to a {@link BufferSink}. Mirrors `Bufferable`, but the object arm allows the
3
+ * optional-sink overload of `toBuffer` so a legacy `toBuffer(): Buffer` and a migrated `toBuffer(sink?)` both fit.
4
+ */
5
+ export type Sinkable =
6
+ | boolean
7
+ | Buffer
8
+ | Uint8Array
9
+ | number
10
+ | bigint
11
+ | string
12
+ | { toBuffer(sink?: BufferSink): Buffer | void }
13
+ | Sinkable[];
14
+
15
+ const DEFAULT_INITIAL_CAPACITY = 1024;
16
+ const MASK_64 = (1n << 64n) - 1n;
17
+
18
+ /**
19
+ * A growable, append-only binary sink backed by a single `ArrayBuffer`.
20
+ *
21
+ * It exists to replace the recursive `toBuffer()` chain — which allocates a `Buffer` at every node and
22
+ * `Buffer.concat`s at every level — with one buffer that the whole object graph streams into and that is sliced
23
+ * exactly once at the root. Encodings are big-endian, matching `serializeToBuffer` byte-for-byte.
24
+ *
25
+ * The migration contract is the optional-sink `toBuffer`:
26
+ *
27
+ * ```ts
28
+ * toBuffer(): Buffer;
29
+ * toBuffer(sink: BufferSink): void;
30
+ * toBuffer(sink?: BufferSink): Buffer | void {
31
+ * if (!sink) return BufferSink.serialize(this); // own a sink, fill it, slice once
32
+ * serializeToSink(sink, this.a, this.b, this.c); // stream into the caller's sink
33
+ * }
34
+ * ```
35
+ *
36
+ * When a sink is passed it writes and returns `undefined`; otherwise it returns its own buffer. Nodes that have
37
+ * not been migrated keep their plain `toBuffer(): Buffer` and are folded in via the return-value fallback in
38
+ * {@link serializeToSink}, so the tree stays valid at every step of an incremental migration.
39
+ *
40
+ * Performance note: bigints are written via `DataView.setBigUint64` limbs ({@link writeBigInt},
41
+ * {@link writeField}), NOT a per-byte shift loop. The limb form is ~16x faster than the legacy hex round-trip
42
+ * on field-heavy structures, and faster than the legacy path at every width — a naive per-byte shift loop is
43
+ * actually the slowest option, since each byte allocates a fresh BigInt. See the spike benchmark.
44
+ */
45
+ export class BufferSink {
46
+ private buffer: Uint8Array;
47
+ private view: DataView;
48
+ private offset = 0;
49
+
50
+ constructor(initialCapacity: number = DEFAULT_INITIAL_CAPACITY) {
51
+ const ab = new ArrayBuffer(initialCapacity);
52
+ this.buffer = new Uint8Array(ab);
53
+ this.view = new DataView(ab);
54
+ }
55
+
56
+ /** Number of bytes written so far. */
57
+ public get length(): number {
58
+ return this.offset;
59
+ }
60
+
61
+ /**
62
+ * Serialize a migrated value into a fresh sink and return the single resulting buffer. This is the no-sink
63
+ * branch of every migrated `toBuffer`: one allocation, one slice, only at the root.
64
+ *
65
+ * @param obj - The value to serialize via its sink-aware `toBuffer`.
66
+ * @param initialCapacity - Optional size hint (e.g. from `getSize()`) to skip reallocations on hot paths.
67
+ */
68
+ public static serialize(obj: { toBuffer(sink: BufferSink): void }, initialCapacity?: number): Buffer {
69
+ const sink = new BufferSink(initialCapacity);
70
+ obj.toBuffer(sink);
71
+ return sink.toBuffer();
72
+ }
73
+
74
+ private ensure(extra: number): void {
75
+ const required = this.offset + extra;
76
+ if (required <= this.buffer.length) {
77
+ return;
78
+ }
79
+ let next = this.buffer.length * 2;
80
+ while (next < required) {
81
+ next *= 2;
82
+ }
83
+ const grown = new Uint8Array(next);
84
+ grown.set(this.buffer.subarray(0, this.offset));
85
+ this.buffer = grown;
86
+ this.view = new DataView(grown.buffer);
87
+ }
88
+
89
+ /** Append a single byte (0/1) for a boolean, matching `boolToBuffer`. */
90
+ public writeBool(value: boolean): void {
91
+ this.ensure(1);
92
+ this.buffer[this.offset++] = value ? 1 : 0;
93
+ }
94
+
95
+ /** Append an unsigned 8-bit integer. */
96
+ public writeUInt8(value: number): void {
97
+ this.ensure(1);
98
+ this.buffer[this.offset++] = value & 0xff;
99
+ }
100
+
101
+ /** Append a big-endian unsigned 16-bit integer. */
102
+ public writeUInt16(value: number): void {
103
+ this.ensure(2);
104
+ this.view.setUint16(this.offset, value, false);
105
+ this.offset += 2;
106
+ }
107
+
108
+ /** Append a big-endian unsigned 32-bit integer, matching `numToUInt32BE`. */
109
+ public writeNumber(value: number): void {
110
+ this.ensure(4);
111
+ this.view.setUint32(this.offset, value, false);
112
+ this.offset += 4;
113
+ }
114
+
115
+ /** Append a big-endian unsigned 64-bit integer, matching `bigintToUInt64BE`. */
116
+ public writeUInt64(value: bigint): void {
117
+ this.ensure(8);
118
+ this.view.setBigUint64(this.offset, value, false);
119
+ this.offset += 8;
120
+ }
121
+
122
+ /**
123
+ * Append a non-negative bigint as a big-endian unsigned integer of `width` bytes (default 32), matching
124
+ * `serializeBigInt` / `toBufferBE`. Every width is written limb-wise via `setBigUint64` rather than the
125
+ * legacy per-byte BigInt shift loop — that loop allocated a fresh BigInt per byte and benchmarked as the
126
+ * *slowest* option (slower even than the legacy hex round-trip); the limb form is faster at every width.
127
+ *
128
+ * The bulk of the value is written as 64-bit big-endian limbs from the least-significant tail upward, and
129
+ * a final `width % 8` (at most 7) high bytes that don't fill a whole limb are written individually. The
130
+ * common widths (8/16/32) are exact multiples of 8, so they take the pure-limb path with no remainder.
131
+ * `width === 32` keeps its own straight-line four-limb form (shared with {@link writeField}) since it is
132
+ * the `Fr`/`Fq`/Chonk-proof hot path and the unrolled body is marginally faster than the loop.
133
+ *
134
+ * @param value - The non-negative bigint to serialize.
135
+ * @param width - Output width in bytes.
136
+ */
137
+ public writeBigInt(value: bigint, width = 32): void {
138
+ if (value < 0n) {
139
+ throw new Error(`Cannot serialize negative bigint ${value}`);
140
+ }
141
+ this.ensure(width);
142
+ const o = this.offset;
143
+ if (width === 32) {
144
+ let x = value;
145
+ this.view.setBigUint64(o + 24, x & MASK_64, false);
146
+ x >>= 64n;
147
+ this.view.setBigUint64(o + 16, x & MASK_64, false);
148
+ x >>= 64n;
149
+ this.view.setBigUint64(o + 8, x & MASK_64, false);
150
+ x >>= 64n;
151
+ this.view.setBigUint64(o, x & MASK_64, false);
152
+ x >>= 64n;
153
+ if (x !== 0n) {
154
+ throw new Error(`BigInt ${value} does not fit into 32 bytes`);
155
+ }
156
+ this.offset += 32;
157
+ return;
158
+ }
159
+ let x = value;
160
+ let pos = o + width;
161
+ while (pos - 8 >= o) {
162
+ pos -= 8;
163
+ this.view.setBigUint64(pos, x & MASK_64, false);
164
+ x >>= 64n;
165
+ }
166
+ for (let i = pos - 1; i >= o; i--) {
167
+ this.buffer[i] = Number(x & 0xffn);
168
+ x >>= 8n;
169
+ }
170
+ if (x !== 0n) {
171
+ throw new Error(`BigInt ${value} does not fit into ${width} bytes`);
172
+ }
173
+ this.offset += width;
174
+ }
175
+
176
+ /**
177
+ * Append a 32-byte (256-bit) big-endian non-negative bigint. Specialized form of {@link writeBigInt}
178
+ * with no width parameter and no width-branch, so V8 can inline the four `setBigUint64` limb writes
179
+ * without the wider branchy form's instability. This is the Fr/Fq leaf hot path; prefer it over
180
+ * `writeBigInt(value, 32)` in callers that always serialize 32-byte fields.
181
+ */
182
+ public writeField(value: bigint): void {
183
+ if (value < 0n) {
184
+ throw new Error(`Cannot serialize negative bigint ${value}`);
185
+ }
186
+ this.ensure(32);
187
+ const o = this.offset;
188
+ let x = value;
189
+ this.view.setBigUint64(o + 24, x & MASK_64, false);
190
+ x >>= 64n;
191
+ this.view.setBigUint64(o + 16, x & MASK_64, false);
192
+ x >>= 64n;
193
+ this.view.setBigUint64(o + 8, x & MASK_64, false);
194
+ x >>= 64n;
195
+ this.view.setBigUint64(o, x & MASK_64, false);
196
+ if (x >> 64n !== 0n) {
197
+ throw new Error(`BigInt ${value} does not fit into 32 bytes`);
198
+ }
199
+ this.offset = o + 32;
200
+ }
201
+
202
+ /**
203
+ * Append an array of field elements (or any objects exposing `toBigInt(): bigint`) as a contiguous
204
+ * sequence of 32-byte big-endian limbs. Iterates inline — no per-element `toBuffer` dispatch and no
205
+ * per-element function-call indirection through the generic sinkable dispatcher. Use this in classes
206
+ * that hold large flat field arrays (e.g. the 1632-element ChonkProof field list).
207
+ */
208
+ public writeFields(fields: ReadonlyArray<{ toBigInt(): bigint }>): void {
209
+ this.ensure(32 * fields.length);
210
+ for (let i = 0, n = fields.length; i < n; i++) {
211
+ const value = fields[i].toBigInt();
212
+ if (value < 0n) {
213
+ throw new Error(`Cannot serialize negative bigint ${value}`);
214
+ }
215
+ const o = this.offset;
216
+ let x = value;
217
+ this.view.setBigUint64(o + 24, x & MASK_64, false);
218
+ x >>= 64n;
219
+ this.view.setBigUint64(o + 16, x & MASK_64, false);
220
+ x >>= 64n;
221
+ this.view.setBigUint64(o + 8, x & MASK_64, false);
222
+ x >>= 64n;
223
+ this.view.setBigUint64(o, x & MASK_64, false);
224
+ if (x >> 64n !== 0n) {
225
+ throw new Error(`BigInt ${value} does not fit into 32 bytes`);
226
+ }
227
+ this.offset = o + 32;
228
+ }
229
+ }
230
+
231
+ /** Append raw bytes verbatim (no length prefix), matching how a `Buffer`/`Uint8Array` is serialized inline. */
232
+ public writeBytes(bytes: Uint8Array): void {
233
+ this.ensure(bytes.length);
234
+ this.buffer.set(bytes, this.offset);
235
+ this.offset += bytes.length;
236
+ }
237
+
238
+ /** Append a string as a 4-byte big-endian length prefix followed by its UTF-8 bytes, matching the string case. */
239
+ public writeString(value: string): void {
240
+ const bytes = Buffer.from(value);
241
+ this.writeNumber(bytes.length);
242
+ this.writeBytes(bytes);
243
+ }
244
+
245
+ /**
246
+ * Reset the write cursor without releasing the backing buffer. Lets the same sink be reused across many
247
+ * serializations without reallocating — the per-call cost drops to the bytes written (no `new ArrayBuffer`).
248
+ * Any `Buffer` previously returned by {@link toBuffer} is a fresh copy and remains valid; any view from
249
+ * {@link asUint8Array} aliases the buffer and is invalidated.
250
+ */
251
+ public reset(): void {
252
+ this.offset = 0;
253
+ }
254
+
255
+ /** Copy the written region into a freshly allocated `Buffer`. The single allocation of the whole serialization. */
256
+ public toBuffer(): Buffer {
257
+ return Buffer.from(this.buffer.subarray(0, this.offset));
258
+ }
259
+
260
+ /** A zero-copy view of the written region. Valid only until the next write (which may reallocate). */
261
+ public asUint8Array(): Uint8Array {
262
+ return this.buffer.subarray(0, this.offset);
263
+ }
264
+ }
265
+
266
+ /**
267
+ * Streaming counterpart to `serializeToBufferArray`: walk a list of {@link Sinkable}s and append each to the sink.
268
+ * Dispatch matches `serializeToBufferArray` byte-for-byte. An object is serialized via `obj.toBuffer(sink)`; a
269
+ * migrated node writes into the sink and returns `undefined`, while a not-yet-migrated node ignores the argument
270
+ * and returns its `Buffer`, which we copy in. That return-value fallback is what makes the migration incremental.
271
+ *
272
+ * Dispatch is hot-pathed for the common case of objects exposing `toBuffer` (Fr/Fq and every other migrated leaf),
273
+ * and arrays recurse via an inner-array helper to avoid the per-call rest-args allocation that a spread-recurse
274
+ * would force on large flat arrays like the 1632-element ChonkProof field list.
275
+ *
276
+ * @param sink - The destination sink.
277
+ * @param objs - The values to serialize, in order.
278
+ */
279
+ export function serializeToSink(sink: BufferSink, ...objs: Sinkable[]): void {
280
+ serializeArrayToSinkInner(sink, objs);
281
+ }
282
+
283
+ function serializeArrayToSinkInner(sink: BufferSink, objs: Sinkable[]): void {
284
+ for (let i = 0, n = objs.length; i < n; i++) {
285
+ serializeOneToSink(sink, objs[i]);
286
+ }
287
+ }
288
+
289
+ function serializeOneToSink(sink: BufferSink, obj: Sinkable): void {
290
+ if (typeof obj === 'object' && obj !== null) {
291
+ // Hot path: migrated nodes (anything implementing toBuffer, including Fr/Fq via BaseField). This branch
292
+ // is taken for the vast majority of recursive serialization, so it is checked before the typeof primitives.
293
+ if ((obj as any).toBuffer !== undefined) {
294
+ const ret = (obj as { toBuffer(sink: BufferSink): Buffer | void }).toBuffer(sink);
295
+ if (ret !== undefined) {
296
+ sink.writeBytes(ret);
297
+ }
298
+ return;
299
+ }
300
+ if (Array.isArray(obj)) {
301
+ serializeArrayToSinkInner(sink, obj);
302
+ return;
303
+ }
304
+ if (Buffer.isBuffer(obj) || obj instanceof Uint8Array) {
305
+ sink.writeBytes(obj);
306
+ return;
307
+ }
308
+ throw new Error(`Cannot serialize input to sink: ${typeof obj} ${(obj as any).constructor?.name}`);
309
+ }
310
+ if (typeof obj === 'boolean') {
311
+ sink.writeBool(obj);
312
+ } else if (typeof obj === 'bigint') {
313
+ sink.writeBigInt(obj);
314
+ } else if (typeof obj === 'number') {
315
+ sink.writeNumber(obj);
316
+ } else if (typeof obj === 'string') {
317
+ sink.writeString(obj);
318
+ } else {
319
+ throw new Error(`Cannot serialize input to sink: ${typeof obj}`);
320
+ }
321
+ }
322
+
323
+ /**
324
+ * Streaming counterpart to `serializeArrayOfBufferableToVector`: write a length prefix (1 or 4 bytes) giving the
325
+ * number of serialized elements, then each element. Byte-identical to the buffer version.
326
+ *
327
+ * @param sink - The destination sink.
328
+ * @param objs - The vector elements.
329
+ * @param prefixLength - Width of the count prefix in bytes (1 or 4).
330
+ */
331
+ export function serializeArrayToSink(sink: BufferSink, objs: Sinkable[], prefixLength = 4): void {
332
+ const count = countSinkables(objs);
333
+ if (prefixLength === 1) {
334
+ sink.writeUInt8(count);
335
+ } else if (prefixLength === 4) {
336
+ sink.writeNumber(count);
337
+ } else {
338
+ throw new Error(`Unsupported prefix length. Got ${prefixLength}, expected 1 or 4`);
339
+ }
340
+ serializeArrayToSinkInner(sink, objs);
341
+ }
342
+
343
+ /** Count how many top-level buffers `serializeToBufferArray` would emit, flattening nested arrays as it does. */
344
+ function countSinkables(objs: Sinkable[]): number {
345
+ let count = 0;
346
+ for (const obj of objs) {
347
+ count += Array.isArray(obj) ? countSinkables(obj) : 1;
348
+ }
349
+ return count;
350
+ }
@@ -0,0 +1,208 @@
1
+ import { Fq, type Fr } from '../curves/bn254/field.js';
2
+ import type { Tuple } from './types.js';
3
+
4
+ /**
5
+ * The FieldReader class provides a utility for reading various data types from a field array.
6
+ *
7
+ * Usage:
8
+ * Create a new instance of FieldReader with an array of fields and an optional offset.
9
+ * Use the provided methods to read desired data types from the field array.
10
+ * The reading methods automatically advance the internal index.
11
+ */
12
+ export class FieldReader {
13
+ private index: number;
14
+ private readonly length: number;
15
+
16
+ constructor(
17
+ private fields: Fr[],
18
+ offset = 0,
19
+ ) {
20
+ this.index = offset;
21
+ this.length = fields.length;
22
+ if (offset > this.length) {
23
+ throw new Error('Offset out of bounds.');
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Creates a FieldReader instance from either a field array or an existing FieldReader.
29
+ *
30
+ * @param fields - A field array or FieldReader to initialize the FieldReader.
31
+ * @returns An instance of FieldReader.
32
+ */
33
+ public static asReader(fields: Fr[] | FieldReader): FieldReader {
34
+ if (fields instanceof FieldReader) {
35
+ return fields;
36
+ }
37
+
38
+ return new FieldReader(fields);
39
+ }
40
+
41
+ /**
42
+ * Returns the current cursor position.
43
+ *
44
+ * @returns The current cursor position.
45
+ */
46
+ public get cursor() {
47
+ return this.index;
48
+ }
49
+
50
+ public remainingFields(): number {
51
+ return this.length - this.index;
52
+ }
53
+
54
+ /**
55
+ * Skips the next n fields.
56
+ *
57
+ * @param n - The number of fields to skip.
58
+ */
59
+ public skip(n: number) {
60
+ if (this.index + n > this.length) {
61
+ throw new Error('Not enough fields to be consumed.');
62
+ }
63
+ this.index += n;
64
+ }
65
+
66
+ /**
67
+ * Reads a single field from the array.
68
+ *
69
+ * @returns A field.
70
+ */
71
+ public readField(): Fr {
72
+ if (this.index === this.length) {
73
+ throw new Error('Not enough fields to be consumed.');
74
+ }
75
+ return this.fields[this.index++];
76
+ }
77
+
78
+ /**
79
+ * Peeks at the next field without advancing the cursor.
80
+ *
81
+ * @returns A field.
82
+ */
83
+ public peekField(): Fr {
84
+ if (this.index === this.length) {
85
+ throw new Error('Not enough fields to be consumed.');
86
+ }
87
+ return this.fields[this.index];
88
+ }
89
+
90
+ /**
91
+ * Reads a Fq from the array.
92
+ *
93
+ * @returns An Fq.
94
+ */
95
+ public readFq(): Fq {
96
+ return Fq.fromHighLow(this.readField(), this.readField());
97
+ }
98
+
99
+ /**
100
+ * Reads and returns the next boolean value from the field array.
101
+ * Advances the internal index by 1, treating the field at the current index as a boolean value.
102
+ * Returns true if the field is non-zero, false otherwise.
103
+ * Throw if the value is not 0 or 1.
104
+ *
105
+ * @returns A boolean value representing the field at the current index.
106
+ */
107
+ public readBoolean(): boolean {
108
+ const field = this.readField();
109
+ const value = field.toBigInt();
110
+ if (value > 1n) {
111
+ throw new Error('Field is not a boolean.');
112
+ }
113
+ return value == 1n;
114
+ }
115
+
116
+ /**
117
+ * Reads a 32-bit unsigned integer from the field array at the current index position.
118
+ * Updates the index position by 1 after reading the number.
119
+ * Throw if the value is greater than 2 ** 32.
120
+ *
121
+ * @returns The read 32-bit unsigned integer value.
122
+ */
123
+ public readU32(): number {
124
+ const field = this.readField();
125
+ const value = field.toBigInt();
126
+ if (value >= 1n << 32n) {
127
+ throw new Error('Field is not a u32.');
128
+ }
129
+ return Number(value);
130
+ }
131
+
132
+ /**
133
+ * Reads a 64-bit unsigned integer from the field array at the current index position.
134
+ * Updates the index position by 1 after reading the number.
135
+ * Throw if the value is greater than 2 ** 64.
136
+ *
137
+ * @returns The read 64-bit unsigned integer value as a bigint.
138
+ */
139
+ public readU64(): bigint {
140
+ const field = this.readField();
141
+ const value = field.toBigInt();
142
+ if (value >= 1n << 64n) {
143
+ throw new Error('Field is not a u64.');
144
+ }
145
+ return value;
146
+ }
147
+
148
+ /**
149
+ * Read an array of a fixed size field array.
150
+ *
151
+ * @param size - The fixed number of fields in the array.
152
+ * @returns An array of fields.
153
+ */
154
+ public readFieldArray<N extends number>(size: N): Tuple<Fr, N> {
155
+ const result: Fr[] = [];
156
+ for (let i = 0; i < size; ++i) {
157
+ result.push(this.readField());
158
+ }
159
+ return result as Tuple<Fr, N>;
160
+ }
161
+
162
+ /**
163
+ * Read an array of a fixed size with elements of type T from the field array.
164
+ * The 'itemDeserializer' object should have a 'fromFields' method that takes a FieldReader instance as input,
165
+ * and returns an instance of the desired deserialized data type T.
166
+ * This method will call the 'fromFields' method for each element in the array and return the resulting array.
167
+ *
168
+ * @param size - The fixed number of elements in the array.
169
+ * @param itemDeserializer - An object with a 'fromFields' method to deserialize individual elements of type T.
170
+ * @returns An array of instances of type T.
171
+ */
172
+ public readArray<T, N extends number>(
173
+ size: N,
174
+ itemDeserializer: {
175
+ /**
176
+ * A function for deserializing data from a FieldReader instance.
177
+ */
178
+ fromFields: (reader: FieldReader) => T;
179
+ },
180
+ ): Tuple<T, N> {
181
+ const result = Array.from({ length: size }, () => itemDeserializer.fromFields(this));
182
+ return result as Tuple<T, N>;
183
+ }
184
+
185
+ /**
186
+ * Reads a serialized object from a field array and returns the deserialized object using the given deserializer.
187
+ *
188
+ * @typeparam T - The type of the deserialized object.
189
+ * @param deserializer - An object with a 'fromFields' method that takes a FieldReader instance and returns an instance of the deserialized object.
190
+ * @returns The deserialized object of type T.
191
+ */
192
+ public readObject<T>(deserializer: {
193
+ /**
194
+ * A method that takes a FieldReader instance and returns an instance of the deserialized data type.
195
+ */
196
+ fromFields: (reader: FieldReader) => T;
197
+ }): T {
198
+ return deserializer.fromFields(this);
199
+ }
200
+
201
+ /**
202
+ * Returns whether the reader has finished reading all fields.
203
+ * @returns A bool.
204
+ */
205
+ public isFinished(): boolean {
206
+ return this.index >= this.length;
207
+ }
208
+ }