@aztec/foundation 0.0.0-test.1 → 0.0.1-commit.0b941701

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 (693) hide show
  1. package/dest/array/array.d.ts +6 -9
  2. package/dest/array/array.d.ts.map +1 -1
  3. package/dest/array/array.js +11 -11
  4. package/dest/array/index.d.ts +2 -1
  5. package/dest/array/index.d.ts.map +1 -1
  6. package/dest/array/index.js +1 -0
  7. package/dest/array/sorted_array.d.ts +10 -0
  8. package/dest/array/sorted_array.d.ts.map +1 -0
  9. package/dest/array/sorted_array.js +106 -0
  10. package/dest/async-map/index.d.ts +1 -1
  11. package/dest/async-pool/index.d.ts +1 -1
  12. package/dest/async-pool/index.d.ts.map +1 -1
  13. package/dest/async-pool/index.js +1 -0
  14. package/dest/bigint/index.d.ts +7 -0
  15. package/dest/bigint/index.d.ts.map +1 -0
  16. package/dest/bigint/index.js +15 -0
  17. package/dest/bigint-buffer/index.d.ts +1 -3
  18. package/dest/bigint-buffer/index.d.ts.map +1 -1
  19. package/dest/branded-types/block_number.d.ts +56 -0
  20. package/dest/branded-types/block_number.d.ts.map +1 -0
  21. package/dest/branded-types/block_number.js +78 -0
  22. package/dest/branded-types/checkpoint_number.d.ts +54 -0
  23. package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
  24. package/dest/branded-types/checkpoint_number.js +77 -0
  25. package/dest/branded-types/epoch.d.ts +42 -0
  26. package/dest/branded-types/epoch.d.ts.map +1 -0
  27. package/dest/branded-types/epoch.js +59 -0
  28. package/dest/branded-types/index.d.ts +7 -0
  29. package/dest/branded-types/index.d.ts.map +1 -0
  30. package/dest/branded-types/index.js +5 -0
  31. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  32. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  33. package/dest/branded-types/index_within_checkpoint.js +59 -0
  34. package/dest/branded-types/slot.d.ts +42 -0
  35. package/dest/branded-types/slot.d.ts.map +1 -0
  36. package/dest/branded-types/slot.js +59 -0
  37. package/dest/branded-types/types.d.ts +5 -0
  38. package/dest/branded-types/types.d.ts.map +1 -0
  39. package/dest/branded-types/types.js +1 -0
  40. package/dest/buffer/buffer16.d.ts +80 -0
  41. package/dest/buffer/buffer16.d.ts.map +1 -0
  42. package/dest/buffer/buffer16.js +102 -0
  43. package/dest/buffer/buffer32.d.ts +5 -9
  44. package/dest/buffer/buffer32.d.ts.map +1 -1
  45. package/dest/buffer/buffer32.js +9 -7
  46. package/dest/buffer/index.d.ts +2 -1
  47. package/dest/buffer/index.d.ts.map +1 -1
  48. package/dest/buffer/index.js +1 -0
  49. package/dest/collection/array.d.ts +22 -4
  50. package/dest/collection/array.d.ts.map +1 -1
  51. package/dest/collection/array.js +84 -3
  52. package/dest/collection/index.d.ts +1 -1
  53. package/dest/collection/object.d.ts +17 -1
  54. package/dest/collection/object.d.ts.map +1 -1
  55. package/dest/collection/object.js +25 -0
  56. package/dest/committable/committable.d.ts +1 -1
  57. package/dest/committable/committable.d.ts.map +1 -1
  58. package/dest/committable/index.d.ts +1 -1
  59. package/dest/config/env_var.d.ts +2 -2
  60. package/dest/config/env_var.d.ts.map +1 -1
  61. package/dest/config/index.d.ts +62 -4
  62. package/dest/config/index.d.ts.map +1 -1
  63. package/dest/config/index.js +143 -12
  64. package/dest/config/network_config.d.ts +54 -0
  65. package/dest/config/network_config.d.ts.map +1 -0
  66. package/dest/config/network_config.js +11 -0
  67. package/dest/config/network_name.d.ts +3 -0
  68. package/dest/config/network_name.d.ts.map +1 -0
  69. package/dest/config/network_name.js +19 -0
  70. package/dest/config/parse-env.d.ts +3 -0
  71. package/dest/config/parse-env.d.ts.map +1 -0
  72. package/dest/config/parse-env.js +7 -0
  73. package/dest/config/secret_value.d.ts +28 -0
  74. package/dest/config/secret_value.d.ts.map +1 -0
  75. package/dest/config/secret_value.js +36 -0
  76. package/dest/crypto/aes128/index.d.ts +3 -5
  77. package/dest/crypto/aes128/index.d.ts.map +1 -1
  78. package/dest/crypto/aes128/index.js +19 -6
  79. package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
  80. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
  81. package/dest/crypto/bls/bn254_keystore.js +218 -0
  82. package/dest/crypto/bls/index.d.ts +13 -0
  83. package/dest/crypto/bls/index.d.ts.map +1 -0
  84. package/dest/crypto/bls/index.js +87 -0
  85. package/dest/crypto/bn254/index.d.ts +39 -0
  86. package/dest/crypto/bn254/index.d.ts.map +1 -0
  87. package/dest/crypto/bn254/index.js +56 -0
  88. package/dest/crypto/ecdsa/index.d.ts +3 -3
  89. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  90. package/dest/crypto/ecdsa/index.js +62 -48
  91. package/dest/crypto/ecdsa/signature.d.ts +3 -5
  92. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  93. package/dest/crypto/ecdsa/signature.js +2 -2
  94. package/dest/crypto/grumpkin/index.d.ts +10 -15
  95. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  96. package/dest/crypto/grumpkin/index.js +61 -55
  97. package/dest/crypto/keccak/index.d.ts +3 -5
  98. package/dest/crypto/keccak/index.d.ts.map +1 -1
  99. package/dest/crypto/keys/index.d.ts +2 -4
  100. package/dest/crypto/keys/index.d.ts.map +1 -1
  101. package/dest/crypto/keys/index.js +8 -5
  102. package/dest/crypto/pedersen/index.d.ts +1 -1
  103. package/dest/crypto/pedersen/pedersen.noble.d.ts +3 -5
  104. package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
  105. package/dest/crypto/pedersen/pedersen.wasm.d.ts +4 -6
  106. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  107. package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
  108. package/dest/crypto/poseidon/index.d.ts +2 -5
  109. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  110. package/dest/crypto/poseidon/index.js +27 -21
  111. package/dest/crypto/random/index.d.ts +2 -4
  112. package/dest/crypto/random/index.d.ts.map +1 -1
  113. package/dest/crypto/random/index.js +2 -34
  114. package/dest/crypto/random/randomness_singleton.d.ts +2 -4
  115. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  116. package/dest/crypto/random/randomness_singleton.js +3 -3
  117. package/dest/crypto/schnorr/index.d.ts +3 -2
  118. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  119. package/dest/crypto/schnorr/index.js +30 -38
  120. package/dest/crypto/schnorr/signature.d.ts +5 -7
  121. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  122. package/dest/crypto/schnorr/signature.js +2 -2
  123. package/dest/crypto/secp256k1/index.d.ts +5 -7
  124. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  125. package/dest/crypto/secp256k1/index.js +23 -18
  126. package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
  127. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
  128. package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
  129. package/dest/crypto/secp256k1-signer/utils.d.ts +56 -5
  130. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  131. package/dest/crypto/secp256k1-signer/utils.js +92 -6
  132. package/dest/crypto/serialize.d.ts +5 -7
  133. package/dest/crypto/serialize.d.ts.map +1 -1
  134. package/dest/crypto/sha256/index.d.ts +23 -6
  135. package/dest/crypto/sha256/index.d.ts.map +1 -1
  136. package/dest/crypto/sha256/index.js +43 -1
  137. package/dest/crypto/sha512/index.d.ts +3 -5
  138. package/dest/crypto/sha512/index.d.ts.map +1 -1
  139. package/dest/crypto/sha512/index.js +1 -1
  140. package/dest/crypto/signature/index.d.ts +2 -4
  141. package/dest/crypto/signature/index.d.ts.map +1 -1
  142. package/dest/crypto/sync/index.d.ts +1 -1
  143. package/dest/crypto/sync/index.js +1 -1
  144. package/dest/crypto/sync/pedersen/index.d.ts +4 -6
  145. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  146. package/dest/crypto/sync/pedersen/index.js +18 -11
  147. package/dest/crypto/sync/poseidon/index.d.ts +2 -5
  148. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  149. package/dest/crypto/sync/poseidon/index.js +23 -16
  150. package/dest/curves/bls12/field.d.ts +148 -0
  151. package/dest/curves/bls12/field.d.ts.map +1 -0
  152. package/dest/curves/bls12/field.js +362 -0
  153. package/dest/curves/bls12/index.d.ts +3 -0
  154. package/dest/curves/bls12/index.d.ts.map +1 -0
  155. package/dest/curves/bls12/index.js +2 -0
  156. package/dest/curves/bls12/point.d.ts +229 -0
  157. package/dest/curves/bls12/point.d.ts.map +1 -0
  158. package/dest/curves/bls12/point.js +400 -0
  159. package/dest/curves/bn254/field.d.ts +180 -0
  160. package/dest/curves/bn254/field.d.ts.map +1 -0
  161. package/dest/{fields/fields.js → curves/bn254/field.js} +90 -62
  162. package/dest/curves/bn254/index.d.ts +3 -0
  163. package/dest/curves/bn254/index.d.ts.map +1 -0
  164. package/dest/curves/bn254/index.js +2 -0
  165. package/dest/curves/bn254/point.d.ts +54 -0
  166. package/dest/curves/bn254/point.d.ts.map +1 -0
  167. package/dest/curves/bn254/point.js +143 -0
  168. package/dest/curves/grumpkin/index.d.ts +10 -0
  169. package/dest/curves/grumpkin/index.d.ts.map +1 -0
  170. package/dest/curves/grumpkin/index.js +3 -0
  171. package/dest/{fields → curves/grumpkin}/point.d.ts +14 -7
  172. package/dest/curves/grumpkin/point.d.ts.map +1 -0
  173. package/dest/{fields → curves/grumpkin}/point.js +27 -10
  174. package/dest/decorators/index.d.ts +1 -1
  175. package/dest/decorators/memoize.d.ts +1 -1
  176. package/dest/decorators/memoize.d.ts.map +1 -1
  177. package/dest/error/index.d.ts +1 -1
  178. package/dest/eth-address/index.d.ts +18 -9
  179. package/dest/eth-address/index.d.ts.map +1 -1
  180. package/dest/eth-address/index.js +31 -2
  181. package/dest/eth-signature/eth_signature.d.ts +17 -15
  182. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  183. package/dest/eth-signature/eth_signature.js +31 -17
  184. package/dest/eth-signature/index.d.ts +1 -1
  185. package/dest/fs/index.d.ts +2 -1
  186. package/dest/fs/index.d.ts.map +1 -1
  187. package/dest/fs/index.js +1 -0
  188. package/dest/fs/run_in_dir.d.ts +1 -1
  189. package/dest/fs/try_rm_dir.d.ts +3 -0
  190. package/dest/fs/try_rm_dir.d.ts.map +1 -0
  191. package/dest/fs/try_rm_dir.js +16 -0
  192. package/dest/iterable/all.d.ts +1 -1
  193. package/dest/iterable/filter.d.ts +1 -1
  194. package/dest/iterable/filter.js +1 -1
  195. package/dest/iterable/index.d.ts +1 -1
  196. package/dest/iterable/isAsyncIt.d.ts +1 -1
  197. package/dest/iterable/map.d.ts +1 -1
  198. package/dest/iterable/map.js +1 -1
  199. package/dest/iterable/peek.d.ts +1 -1
  200. package/dest/iterable/sort.d.ts +1 -1
  201. package/dest/iterable/take.d.ts +1 -1
  202. package/dest/iterable/toArray.d.ts +1 -1
  203. package/dest/iterator/filter.d.ts +3 -0
  204. package/dest/iterator/filter.d.ts.map +1 -0
  205. package/dest/iterator/filter.js +7 -0
  206. package/dest/iterator/index.d.ts +2 -0
  207. package/dest/iterator/index.d.ts.map +1 -0
  208. package/dest/iterator/index.js +1 -0
  209. package/dest/jest/env.js +48 -0
  210. package/dest/jest/setupAfterEnv.js +3 -0
  211. package/dest/json-rpc/client/fetch.d.ts +3 -3
  212. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  213. package/dest/json-rpc/client/fetch.js +16 -30
  214. package/dest/json-rpc/client/index.d.ts +1 -1
  215. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +10 -4
  216. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  217. package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
  218. package/dest/json-rpc/client/undici.d.ts +1 -1
  219. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  220. package/dest/json-rpc/client/undici.js +27 -11
  221. package/dest/json-rpc/convert.d.ts +3 -10
  222. package/dest/json-rpc/convert.d.ts.map +1 -1
  223. package/dest/json-rpc/convert.js +1 -9
  224. package/dest/json-rpc/errors.d.ts +4 -0
  225. package/dest/json-rpc/errors.d.ts.map +1 -0
  226. package/dest/json-rpc/errors.js +6 -0
  227. package/dest/json-rpc/fixtures/class_a.d.ts +6 -4
  228. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  229. package/dest/json-rpc/fixtures/class_b.d.ts +6 -4
  230. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  231. package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
  232. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  233. package/dest/json-rpc/index.d.ts +3 -2
  234. package/dest/json-rpc/index.d.ts.map +1 -1
  235. package/dest/json-rpc/index.js +2 -1
  236. package/dest/json-rpc/js_utils.d.ts +1 -1
  237. package/dest/json-rpc/js_utils.d.ts.map +1 -1
  238. package/dest/json-rpc/server/index.d.ts +1 -1
  239. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +22 -23
  240. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  241. package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
  242. package/dest/json-rpc/test/index.d.ts +1 -1
  243. package/dest/json-rpc/test/integration.d.ts +2 -3
  244. package/dest/json-rpc/test/integration.d.ts.map +1 -1
  245. package/dest/log/console.d.ts +1 -1
  246. package/dest/log/console.d.ts.map +1 -1
  247. package/dest/log/gcloud-logger-config.d.ts +1 -2
  248. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  249. package/dest/log/gcloud-logger-config.js +1 -9
  250. package/dest/log/index.d.ts +5 -5
  251. package/dest/log/index.d.ts.map +1 -1
  252. package/dest/log/index.js +4 -4
  253. package/dest/log/libp2p_logger.d.ts +1 -1
  254. package/dest/log/libp2p_logger.js +13 -2
  255. package/dest/log/log-filters.d.ts +1 -1
  256. package/dest/log/log-levels.d.ts +1 -1
  257. package/dest/log/log_fn.d.ts +2 -2
  258. package/dest/log/log_fn.d.ts.map +1 -1
  259. package/dest/log/noir_debug_log_util.d.ts +14 -0
  260. package/dest/log/noir_debug_log_util.d.ts.map +1 -0
  261. package/dest/log/noir_debug_log_util.js +14 -0
  262. package/dest/log/pino-logger.d.ts +4 -4
  263. package/dest/log/pino-logger.d.ts.map +1 -1
  264. package/dest/log/pino-logger.js +29 -3
  265. package/dest/message/index.d.ts +1 -1
  266. package/dest/message/index.d.ts.map +1 -1
  267. package/dest/mutex/index.d.ts +1 -1
  268. package/dest/mutex/index.d.ts.map +1 -1
  269. package/dest/mutex/mutex_database.d.ts +1 -1
  270. package/dest/mutex/mutex_database.d.ts.map +1 -1
  271. package/dest/noir/index.d.ts +1 -1
  272. package/dest/noir/noir_package_config.d.ts +9 -9
  273. package/dest/number/index.d.ts +3 -0
  274. package/dest/number/index.d.ts.map +1 -0
  275. package/dest/number/index.js +12 -0
  276. package/dest/profiler/index.d.ts +2 -0
  277. package/dest/profiler/index.d.ts.map +1 -0
  278. package/dest/profiler/index.js +1 -0
  279. package/dest/profiler/profiler.d.ts +8 -0
  280. package/dest/profiler/profiler.d.ts.map +1 -0
  281. package/dest/profiler/profiler.js +97 -0
  282. package/dest/promise/index.d.ts +1 -1
  283. package/dest/promise/running-promise.d.ts +2 -2
  284. package/dest/promise/running-promise.d.ts.map +1 -1
  285. package/dest/promise/running-promise.js +2 -2
  286. package/dest/promise/utils.d.ts +1 -1
  287. package/dest/queue/base_memory_queue.d.ts +1 -1
  288. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  289. package/dest/queue/batch_queue.d.ts +2 -2
  290. package/dest/queue/batch_queue.d.ts.map +1 -1
  291. package/dest/queue/batch_queue.js +1 -1
  292. package/dest/queue/bounded_serial_queue.d.ts +1 -1
  293. package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
  294. package/dest/queue/fifo_memory_queue.d.ts +1 -1
  295. package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
  296. package/dest/queue/index.d.ts +1 -1
  297. package/dest/queue/priority_memory_queue.d.ts +1 -1
  298. package/dest/queue/priority_memory_queue.d.ts.map +1 -1
  299. package/dest/queue/priority_queue.d.ts +1 -1
  300. package/dest/queue/priority_queue.d.ts.map +1 -1
  301. package/dest/queue/semaphore.d.ts +1 -1
  302. package/dest/queue/semaphore.d.ts.map +1 -1
  303. package/dest/queue/serial_queue.d.ts +3 -3
  304. package/dest/queue/serial_queue.d.ts.map +1 -1
  305. package/dest/queue/serial_queue.js +7 -5
  306. package/dest/retry/index.d.ts +14 -3
  307. package/dest/retry/index.d.ts.map +1 -1
  308. package/dest/retry/index.js +13 -2
  309. package/dest/running-promise/index.d.ts +1 -1
  310. package/dest/schemas/api.d.ts +1 -1
  311. package/dest/schemas/api.d.ts.map +1 -1
  312. package/dest/schemas/index.d.ts +1 -1
  313. package/dest/schemas/parse.d.ts +1 -1
  314. package/dest/schemas/parse.js +1 -1
  315. package/dest/schemas/schemas.d.ts +21 -20
  316. package/dest/schemas/schemas.d.ts.map +1 -1
  317. package/dest/schemas/schemas.js +29 -11
  318. package/dest/schemas/types.d.ts +31 -1
  319. package/dest/schemas/types.d.ts.map +1 -1
  320. package/dest/schemas/types.js +25 -1
  321. package/dest/schemas/utils.d.ts +4 -6
  322. package/dest/schemas/utils.d.ts.map +1 -1
  323. package/dest/schemas/utils.js +15 -5
  324. package/dest/serialize/buffer_reader.d.ts +34 -6
  325. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  326. package/dest/serialize/buffer_reader.js +57 -6
  327. package/dest/serialize/field_reader.d.ts +12 -3
  328. package/dest/serialize/field_reader.d.ts.map +1 -1
  329. package/dest/serialize/field_reader.js +19 -2
  330. package/dest/serialize/free_funcs.d.ts +25 -23
  331. package/dest/serialize/free_funcs.d.ts.map +1 -1
  332. package/dest/serialize/free_funcs.js +22 -28
  333. package/dest/serialize/index.d.ts +1 -1
  334. package/dest/serialize/serialize.d.ts +6 -7
  335. package/dest/serialize/serialize.d.ts.map +1 -1
  336. package/dest/serialize/serialize.js +1 -1
  337. package/dest/serialize/type_registry.d.ts +1 -1
  338. package/dest/serialize/type_registry.d.ts.map +1 -1
  339. package/dest/serialize/types.d.ts +1 -1
  340. package/dest/sleep/index.d.ts +3 -1
  341. package/dest/sleep/index.d.ts.map +1 -1
  342. package/dest/sleep/index.js +4 -0
  343. package/dest/string/index.d.ts +8 -3
  344. package/dest/string/index.d.ts.map +1 -1
  345. package/dest/string/index.js +27 -1
  346. package/dest/testing/files/index.d.ts +2 -3
  347. package/dest/testing/files/index.d.ts.map +1 -1
  348. package/dest/testing/files/index.js +3 -3
  349. package/dest/testing/formatting.d.ts +4 -0
  350. package/dest/testing/formatting.d.ts.map +1 -0
  351. package/dest/testing/formatting.js +3 -0
  352. package/dest/testing/index.d.ts +2 -1
  353. package/dest/testing/index.d.ts.map +1 -1
  354. package/dest/testing/index.js +1 -0
  355. package/dest/testing/port_allocator.d.ts +1 -1
  356. package/dest/testing/snapshot_serializer.d.ts +1 -1
  357. package/dest/testing/test_data.d.ts +1 -1
  358. package/dest/timer/date.d.ts +4 -2
  359. package/dest/timer/date.d.ts.map +1 -1
  360. package/dest/timer/date.js +8 -3
  361. package/dest/timer/elapsed.d.ts +1 -1
  362. package/dest/timer/index.d.ts +2 -2
  363. package/dest/timer/index.d.ts.map +1 -1
  364. package/dest/timer/index.js +1 -1
  365. package/dest/timer/timeout.d.ts +19 -6
  366. package/dest/timer/timeout.d.ts.map +1 -1
  367. package/dest/timer/timeout.js +43 -22
  368. package/dest/timer/timer.d.ts +1 -1
  369. package/dest/timer/timer.d.ts.map +1 -1
  370. package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
  371. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
  372. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
  373. package/dest/transport/dispatch/messages.d.ts +1 -1
  374. package/dest/transport/index.d.ts +1 -2
  375. package/dest/transport/index.d.ts.map +1 -1
  376. package/dest/transport/index.js +0 -1
  377. package/dest/transport/interface/connector.d.ts +1 -1
  378. package/dest/transport/interface/connector.d.ts.map +1 -1
  379. package/dest/transport/interface/listener.d.ts +1 -2
  380. package/dest/transport/interface/listener.d.ts.map +1 -1
  381. package/dest/transport/interface/socket.d.ts +1 -1
  382. package/dest/transport/interface/socket.d.ts.map +1 -1
  383. package/dest/transport/interface/transferable.d.ts +1 -1
  384. package/dest/transport/node/index.d.ts +1 -1
  385. package/dest/transport/node/node_connector.d.ts +1 -2
  386. package/dest/transport/node/node_connector.d.ts.map +1 -1
  387. package/dest/transport/node/node_connector_socket.d.ts +1 -2
  388. package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
  389. package/dest/transport/node/node_listener.d.ts +1 -2
  390. package/dest/transport/node/node_listener.d.ts.map +1 -1
  391. package/dest/transport/node/node_listener_socket.d.ts +1 -2
  392. package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
  393. package/dest/transport/transport_client.d.ts +1 -2
  394. package/dest/transport/transport_client.d.ts.map +1 -1
  395. package/dest/transport/transport_server.d.ts +1 -10
  396. package/dest/transport/transport_server.d.ts.map +1 -1
  397. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  398. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  399. package/dest/trees/balanced_merkle_tree_root.js +51 -0
  400. package/dest/trees/hasher.d.ts +7 -7
  401. package/dest/trees/hasher.d.ts.map +1 -1
  402. package/dest/trees/hasher.js +10 -5
  403. package/dest/trees/index.d.ts +5 -3
  404. package/dest/trees/index.d.ts.map +1 -1
  405. package/dest/trees/index.js +4 -2
  406. package/dest/trees/indexed_merkle_tree.d.ts +1 -3
  407. package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
  408. package/dest/trees/indexed_merkle_tree.js +1 -1
  409. package/dest/trees/indexed_merkle_tree_calculator.d.ts +2 -4
  410. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  411. package/dest/trees/indexed_tree_leaf.d.ts +1 -3
  412. package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
  413. package/dest/trees/membership_witness.d.ts +10 -5
  414. package/dest/trees/membership_witness.d.ts.map +1 -1
  415. package/dest/trees/membership_witness.js +23 -1
  416. package/dest/trees/merkle_tree.d.ts +1 -3
  417. package/dest/trees/merkle_tree.d.ts.map +1 -1
  418. package/dest/trees/merkle_tree_calculator.d.ts +2 -4
  419. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  420. package/dest/trees/merkle_tree_calculator.js +2 -2
  421. package/dest/trees/sibling_path.d.ts +6 -41
  422. package/dest/trees/sibling_path.d.ts.map +1 -1
  423. package/dest/trees/sibling_path.js +3 -3
  424. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
  425. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
  426. package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
  427. package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
  428. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  429. package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
  430. package/dest/trees/unbalanced_tree_store.d.ts +6 -1
  431. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  432. package/dest/trees/unbalanced_tree_store.js +55 -1
  433. package/dest/types/index.d.ts +28 -3
  434. package/dest/types/index.d.ts.map +1 -1
  435. package/dest/types/index.js +3 -0
  436. package/dest/url/index.d.ts +1 -1
  437. package/dest/url/index.d.ts.map +1 -1
  438. package/dest/url/index.js +1 -1
  439. package/dest/validation/index.d.ts +1 -1
  440. package/package.json +59 -45
  441. package/src/array/array.ts +13 -16
  442. package/src/array/index.ts +1 -0
  443. package/src/array/sorted_array.ts +133 -0
  444. package/src/async-pool/index.ts +1 -0
  445. package/src/bigint/index.ts +20 -0
  446. package/src/branded-types/block_number.ts +117 -0
  447. package/src/branded-types/checkpoint_number.ts +115 -0
  448. package/src/branded-types/epoch.ts +88 -0
  449. package/src/branded-types/index.ts +7 -0
  450. package/src/branded-types/index_within_checkpoint.ts +88 -0
  451. package/src/branded-types/slot.ts +88 -0
  452. package/src/branded-types/types.ts +2 -0
  453. package/src/buffer/buffer16.ts +133 -0
  454. package/src/buffer/buffer32.ts +10 -8
  455. package/src/buffer/index.ts +1 -0
  456. package/src/collection/array.ts +97 -4
  457. package/src/collection/object.ts +37 -0
  458. package/src/config/env_var.ts +180 -59
  459. package/src/config/index.ts +226 -10
  460. package/src/config/network_config.ts +18 -0
  461. package/src/config/network_name.ts +28 -0
  462. package/src/config/parse-env.ts +4 -0
  463. package/src/config/secret_value.ts +49 -0
  464. package/src/crypto/aes128/index.ts +19 -10
  465. package/src/crypto/bls/bn254_keystore.ts +287 -0
  466. package/src/crypto/bls/index.ts +77 -0
  467. package/src/crypto/bn254/index.ts +64 -0
  468. package/src/crypto/ecdsa/index.ts +41 -23
  469. package/src/crypto/ecdsa/signature.ts +2 -2
  470. package/src/crypto/grumpkin/index.ts +38 -46
  471. package/src/crypto/keys/index.ts +6 -6
  472. package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
  473. package/src/crypto/poseidon/index.ts +27 -29
  474. package/src/crypto/random/index.ts +2 -40
  475. package/src/crypto/random/randomness_singleton.ts +2 -4
  476. package/src/crypto/schnorr/index.ts +22 -18
  477. package/src/crypto/schnorr/signature.ts +2 -2
  478. package/src/crypto/secp256k1/index.ts +15 -11
  479. package/src/crypto/secp256k1-signer/utils.ts +120 -7
  480. package/src/crypto/sha256/index.ts +48 -1
  481. package/src/crypto/sha512/index.ts +1 -1
  482. package/src/crypto/signature/index.ts +1 -1
  483. package/src/crypto/sync/index.ts +1 -1
  484. package/src/crypto/sync/pedersen/index.ts +17 -16
  485. package/src/crypto/sync/poseidon/index.ts +23 -27
  486. package/src/curves/bls12/field.ts +463 -0
  487. package/src/curves/bls12/index.ts +2 -0
  488. package/src/curves/bls12/point.ts +450 -0
  489. package/src/{fields/fields.ts → curves/bn254/field.ts} +84 -63
  490. package/src/curves/bn254/index.ts +2 -0
  491. package/src/curves/bn254/point.ts +170 -0
  492. package/src/curves/grumpkin/index.ts +11 -0
  493. package/src/{fields → curves/grumpkin}/point.ts +27 -10
  494. package/src/eth-address/index.ts +35 -3
  495. package/src/eth-signature/eth_signature.ts +44 -22
  496. package/src/fs/index.ts +1 -0
  497. package/src/fs/try_rm_dir.ts +15 -0
  498. package/src/iterable/filter.ts +1 -1
  499. package/src/iterable/map.ts +1 -1
  500. package/src/iterator/filter.ts +11 -0
  501. package/src/iterator/index.ts +1 -0
  502. package/src/jest/env.mjs +52 -0
  503. package/src/jest/setupAfterEnv.mjs +3 -0
  504. package/src/json-rpc/client/fetch.ts +14 -33
  505. package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
  506. package/src/json-rpc/client/undici.ts +29 -18
  507. package/src/json-rpc/convert.ts +3 -12
  508. package/src/json-rpc/errors.ts +6 -0
  509. package/src/json-rpc/fixtures/class_a.ts +4 -1
  510. package/src/json-rpc/fixtures/class_b.ts +4 -1
  511. package/src/json-rpc/index.ts +2 -1
  512. package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
  513. package/src/json-rpc/test/integration.ts +1 -1
  514. package/src/log/console.ts +4 -1
  515. package/src/log/gcloud-logger-config.ts +3 -7
  516. package/src/log/index.ts +4 -4
  517. package/src/log/libp2p_logger.ts +21 -2
  518. package/src/log/log_fn.ts +1 -1
  519. package/src/log/noir_debug_log_util.ts +21 -0
  520. package/src/log/pino-logger.ts +35 -3
  521. package/src/message/index.ts +5 -1
  522. package/src/mutex/mutex_database.ts +2 -3
  523. package/src/number/index.ts +14 -0
  524. package/src/profiler/index.ts +1 -0
  525. package/src/profiler/profiler.ts +125 -0
  526. package/src/promise/running-promise.ts +2 -2
  527. package/src/queue/batch_queue.ts +1 -1
  528. package/src/queue/bounded_serial_queue.ts +4 -1
  529. package/src/queue/serial_queue.ts +5 -5
  530. package/src/retry/index.ts +28 -5
  531. package/src/schemas/api.ts +4 -4
  532. package/src/schemas/parse.ts +1 -1
  533. package/src/schemas/schemas.ts +42 -13
  534. package/src/schemas/types.ts +33 -0
  535. package/src/schemas/utils.ts +21 -8
  536. package/src/serialize/buffer_reader.ts +81 -12
  537. package/src/serialize/field_reader.ts +28 -4
  538. package/src/serialize/free_funcs.ts +26 -32
  539. package/src/serialize/serialize.ts +3 -1
  540. package/src/sleep/index.ts +6 -0
  541. package/src/string/index.ts +36 -1
  542. package/src/testing/files/index.ts +7 -3
  543. package/src/testing/formatting.ts +3 -0
  544. package/src/testing/index.ts +1 -0
  545. package/src/timer/date.ts +13 -3
  546. package/src/timer/index.ts +1 -1
  547. package/src/timer/timeout.ts +54 -19
  548. package/src/transport/index.ts +0 -1
  549. package/src/transport/interface/connector.ts +0 -1
  550. package/src/transport/interface/listener.ts +2 -3
  551. package/src/transport/interface/socket.ts +2 -3
  552. package/src/transport/transport_client.ts +3 -4
  553. package/src/transport/transport_server.ts +4 -1
  554. package/src/trees/balanced_merkle_tree_root.ts +68 -0
  555. package/src/trees/hasher.ts +13 -4
  556. package/src/trees/index.ts +4 -2
  557. package/src/trees/indexed_merkle_tree.ts +6 -2
  558. package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
  559. package/src/trees/membership_witness.ts +22 -1
  560. package/src/trees/merkle_tree.ts +4 -1
  561. package/src/trees/merkle_tree_calculator.ts +10 -5
  562. package/src/trees/sibling_path.ts +3 -3
  563. package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
  564. package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
  565. package/src/trees/unbalanced_tree_store.ts +62 -3
  566. package/src/types/index.ts +30 -4
  567. package/src/url/index.ts +0 -1
  568. package/dest/crypto/index.d.ts +0 -15
  569. package/dest/crypto/index.d.ts.map +0 -1
  570. package/dest/crypto/index.js +0 -14
  571. package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
  572. package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
  573. package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
  574. package/dest/fields/coordinate.d.ts +0 -68
  575. package/dest/fields/coordinate.d.ts.map +0 -1
  576. package/dest/fields/coordinate.js +0 -96
  577. package/dest/fields/fields.d.ts +0 -176
  578. package/dest/fields/fields.d.ts.map +0 -1
  579. package/dest/fields/index.d.ts +0 -4
  580. package/dest/fields/index.d.ts.map +0 -1
  581. package/dest/fields/index.js +0 -3
  582. package/dest/fields/point.d.ts.map +0 -1
  583. package/dest/index.d.ts +0 -31
  584. package/dest/index.d.ts.map +0 -1
  585. package/dest/index.js +0 -31
  586. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  587. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  588. package/dest/json-rpc/server/telemetry.js +0 -0
  589. package/dest/log/debug.d.ts +0 -56
  590. package/dest/log/debug.d.ts.map +0 -1
  591. package/dest/log/debug.js +0 -75
  592. package/dest/log/log_history.d.ts +0 -31
  593. package/dest/log/log_history.d.ts.map +0 -1
  594. package/dest/log/log_history.js +0 -38
  595. package/dest/transport/browser/index.d.ts +0 -5
  596. package/dest/transport/browser/index.d.ts.map +0 -1
  597. package/dest/transport/browser/index.js +0 -4
  598. package/dest/transport/browser/message_port_socket.d.ts +0 -37
  599. package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
  600. package/dest/transport/browser/message_port_socket.js +0 -42
  601. package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
  602. package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
  603. package/dest/transport/browser/shared_worker_connector.js +0 -19
  604. package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
  605. package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
  606. package/dest/transport/browser/shared_worker_listener.js +0 -33
  607. package/dest/transport/browser/worker_connector.d.ts +0 -26
  608. package/dest/transport/browser/worker_connector.d.ts.map +0 -1
  609. package/dest/transport/browser/worker_connector.js +0 -30
  610. package/dest/transport/browser/worker_listener.d.ts +0 -39
  611. package/dest/transport/browser/worker_listener.d.ts.map +0 -1
  612. package/dest/transport/browser/worker_listener.js +0 -35
  613. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -17
  614. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  615. package/dest/trees/unbalanced_merkle_tree.js +0 -100
  616. package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
  617. package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
  618. package/dest/wasm/empty_wasi_sdk.js +0 -148
  619. package/dest/wasm/index.d.ts +0 -2
  620. package/dest/wasm/index.d.ts.map +0 -1
  621. package/dest/wasm/index.js +0 -1
  622. package/dest/wasm/wasm_module.d.ts +0 -136
  623. package/dest/wasm/wasm_module.d.ts.map +0 -1
  624. package/dest/wasm/wasm_module.js +0 -196
  625. package/dest/worker/browser/index.d.ts +0 -3
  626. package/dest/worker/browser/index.d.ts.map +0 -1
  627. package/dest/worker/browser/index.js +0 -2
  628. package/dest/worker/browser/start_web_module.d.ts +0 -7
  629. package/dest/worker/browser/start_web_module.d.ts.map +0 -1
  630. package/dest/worker/browser/start_web_module.js +0 -27
  631. package/dest/worker/browser/web_data_store.d.ts +0 -24
  632. package/dest/worker/browser/web_data_store.d.ts.map +0 -1
  633. package/dest/worker/browser/web_data_store.js +0 -29
  634. package/dest/worker/browser/web_worker.d.ts +0 -10
  635. package/dest/worker/browser/web_worker.d.ts.map +0 -1
  636. package/dest/worker/browser/web_worker.js +0 -25
  637. package/dest/worker/data_store.d.ts +0 -21
  638. package/dest/worker/data_store.d.ts.map +0 -1
  639. package/dest/worker/data_store.js +0 -3
  640. package/dest/worker/index.d.ts +0 -3
  641. package/dest/worker/index.d.ts.map +0 -1
  642. package/dest/worker/index.js +0 -1
  643. package/dest/worker/node/index.d.ts +0 -3
  644. package/dest/worker/node/index.d.ts.map +0 -1
  645. package/dest/worker/node/index.js +0 -2
  646. package/dest/worker/node/node_data_store.d.ts +0 -13
  647. package/dest/worker/node/node_data_store.d.ts.map +0 -1
  648. package/dest/worker/node/node_data_store.js +0 -20
  649. package/dest/worker/node/node_worker.d.ts +0 -6
  650. package/dest/worker/node/node_worker.d.ts.map +0 -1
  651. package/dest/worker/node/node_worker.js +0 -22
  652. package/dest/worker/node/start_node_module.d.ts +0 -7
  653. package/dest/worker/node/start_node_module.d.ts.map +0 -1
  654. package/dest/worker/node/start_node_module.js +0 -31
  655. package/dest/worker/wasm_worker.d.ts +0 -9
  656. package/dest/worker/wasm_worker.d.ts.map +0 -1
  657. package/dest/worker/wasm_worker.js +0 -3
  658. package/dest/worker/worker_pool.d.ts +0 -40
  659. package/dest/worker/worker_pool.d.ts.map +0 -1
  660. package/dest/worker/worker_pool.js +0 -51
  661. package/src/crypto/index.ts +0 -14
  662. package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
  663. package/src/fields/coordinate.ts +0 -104
  664. package/src/fields/index.ts +0 -3
  665. package/src/index.ts +0 -31
  666. package/src/json-rpc/server/telemetry.ts +0 -0
  667. package/src/log/debug.ts +0 -104
  668. package/src/log/log_history.ts +0 -44
  669. package/src/transport/browser/index.ts +0 -4
  670. package/src/transport/browser/message_port_socket.ts +0 -48
  671. package/src/transport/browser/shared_worker_connector.ts +0 -21
  672. package/src/transport/browser/shared_worker_listener.ts +0 -53
  673. package/src/transport/browser/worker_connector.ts +0 -30
  674. package/src/transport/browser/worker_listener.ts +0 -54
  675. package/src/trees/unbalanced_merkle_tree.ts +0 -103
  676. package/src/wasm/README.md +0 -6
  677. package/src/wasm/empty_wasi_sdk.ts +0 -166
  678. package/src/wasm/fixtures/gcd.wasm +0 -0
  679. package/src/wasm/fixtures/gcd.wat +0 -27
  680. package/src/wasm/index.ts +0 -1
  681. package/src/wasm/wasm_module.ts +0 -260
  682. package/src/worker/browser/index.ts +0 -2
  683. package/src/worker/browser/start_web_module.ts +0 -24
  684. package/src/worker/browser/web_data_store.ts +0 -38
  685. package/src/worker/browser/web_worker.ts +0 -25
  686. package/src/worker/data_store.ts +0 -19
  687. package/src/worker/index.ts +0 -2
  688. package/src/worker/node/index.ts +0 -2
  689. package/src/worker/node/node_data_store.ts +0 -27
  690. package/src/worker/node/node_worker.ts +0 -23
  691. package/src/worker/node/start_node_module.ts +0 -30
  692. package/src/worker/wasm_worker.ts +0 -7
  693. package/src/worker/worker_pool.ts +0 -73
@@ -0,0 +1,143 @@
1
+ import { BN254_G1_GENERATOR, BN254_G2_GENERATOR, BarretenbergSync } from '@aztec/bb.js';
2
+ import { Fq } from './field.js';
3
+ /**
4
+ * BN254 G1 point using foundation field classes.
5
+ * Represents a point on the BN254 elliptic curve in affine coordinates.
6
+ */ export class Bn254G1Point {
7
+ x;
8
+ y;
9
+ constructor(x, y){
10
+ this.x = x;
11
+ this.y = y;
12
+ }
13
+ toBbApiPoint() {
14
+ return {
15
+ x: this.x.toBuffer(),
16
+ y: this.y.toBuffer()
17
+ };
18
+ }
19
+ static fromBbApiPoint(point) {
20
+ return new Bn254G1Point(Fq.fromBuffer(Buffer.from(point.x)), Fq.fromBuffer(Buffer.from(point.y)));
21
+ }
22
+ async isOnCurve() {
23
+ await BarretenbergSync.initSingleton();
24
+ const api = BarretenbergSync.getSingleton();
25
+ const apiPoint = this.toBbApiPoint();
26
+ const response = api.bn254G1IsOnCurve({
27
+ point: apiPoint
28
+ });
29
+ return response.isOnCurve;
30
+ }
31
+ /**
32
+ * Get the generator point for BN254 G1, or perform scalar multiplication.
33
+ * When called without arguments, returns the base generator point.
34
+ * When called with a scalar, returns scalar * generator (useful for public key derivation).
35
+ */ static async generator(scalar) {
36
+ if (!scalar) {
37
+ return new Bn254G1Point(Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.x)), Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.y)));
38
+ }
39
+ await BarretenbergSync.initSingleton();
40
+ const api = BarretenbergSync.getSingleton();
41
+ const response = api.bn254G1Mul({
42
+ point: BN254_G1_GENERATOR,
43
+ scalar: scalar.toBuffer()
44
+ });
45
+ return Bn254G1Point.fromBbApiPoint(response.point);
46
+ }
47
+ /**
48
+ * Decompress a BN254 G1 point from compressed form (32 bytes).
49
+ * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
50
+ * in the most significant bit.
51
+ */ static async fromCompressed(compressed) {
52
+ if (compressed.length !== 32) {
53
+ throw new Error('Invalid compressed point length');
54
+ }
55
+ await BarretenbergSync.initSingleton();
56
+ const api = BarretenbergSync.getSingleton();
57
+ const response = api.bn254G1FromCompressed({
58
+ compressed: new Uint8Array(compressed)
59
+ });
60
+ return Bn254G1Point.fromBbApiPoint(response.point);
61
+ }
62
+ /**
63
+ * Compress this BN254 G1 point to 32 bytes.
64
+ * The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
65
+ * in the most significant bit (bit 255).
66
+ */ compress() {
67
+ const xBytes = this.x.toBuffer();
68
+ // Get the least significant bit of y to determine the sign
69
+ const yLsb = this.y.toBigInt() & 1n;
70
+ // If y is odd, set the most significant bit (bit 255) of the output
71
+ if (yLsb === 1n) {
72
+ xBytes[0] |= 0x80;
73
+ }
74
+ return xBytes;
75
+ }
76
+ equals(other) {
77
+ return this.x.equals(other.x) && this.y.equals(other.y);
78
+ }
79
+ toString() {
80
+ return `Bn254G1Point(x: ${this.x.toString()}, y: ${this.y.toString()})`;
81
+ }
82
+ }
83
+ /**
84
+ * BN254 G2 point using foundation field classes.
85
+ * Represents a point on the BN254 G2 curve (twist curve) in affine coordinates.
86
+ * G2 points use extension field coordinates (Fq2).
87
+ */ export class Bn254G2Point {
88
+ x;
89
+ y;
90
+ constructor(x, y){
91
+ this.x = x;
92
+ this.y = y;
93
+ }
94
+ toBbApiPoint() {
95
+ return {
96
+ x: [
97
+ this.x[0].toBuffer(),
98
+ this.x[1].toBuffer()
99
+ ],
100
+ y: [
101
+ this.y[0].toBuffer(),
102
+ this.y[1].toBuffer()
103
+ ]
104
+ };
105
+ }
106
+ static fromBbApiPoint(point) {
107
+ return new Bn254G2Point([
108
+ Fq.fromBuffer(Buffer.from(point.x[0])),
109
+ Fq.fromBuffer(Buffer.from(point.x[1]))
110
+ ], [
111
+ Fq.fromBuffer(Buffer.from(point.y[0])),
112
+ Fq.fromBuffer(Buffer.from(point.y[1]))
113
+ ]);
114
+ }
115
+ /**
116
+ * Get the generator point for BN254 G2, or perform scalar multiplication.
117
+ * When called without arguments, returns the base generator point.
118
+ * When called with a scalar, returns scalar * generator.
119
+ */ static async generator(scalar) {
120
+ if (!scalar) {
121
+ return new Bn254G2Point([
122
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[0])),
123
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[1]))
124
+ ], [
125
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[0])),
126
+ Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[1]))
127
+ ]);
128
+ }
129
+ await BarretenbergSync.initSingleton();
130
+ const api = BarretenbergSync.getSingleton();
131
+ const response = api.bn254G2Mul({
132
+ point: BN254_G2_GENERATOR,
133
+ scalar: scalar.toBuffer()
134
+ });
135
+ return Bn254G2Point.fromBbApiPoint(response.point);
136
+ }
137
+ equals(other) {
138
+ return this.x[0].equals(other.x[0]) && this.x[1].equals(other.x[1]) && this.y[0].equals(other.y[0]) && this.y[1].equals(other.y[1]);
139
+ }
140
+ toString() {
141
+ return `Bn254G2Point(x: (${this.x[0].toString()}, ${this.x[1].toString()}), y: (${this.y[0].toString()}, ${this.y[1].toString()}))`;
142
+ }
143
+ }
@@ -0,0 +1,10 @@
1
+ import { Fq } from '../bn254/field.js';
2
+ export * from './point.js';
3
+ /**
4
+ * GrumpkinScalar is an Fq.
5
+ * @remarks Called GrumpkinScalar because it is used to represent elements in Grumpkin's scalar field as defined in
6
+ * the Aztec Protocol Specs.
7
+ */
8
+ export type GrumpkinScalar = Fq;
9
+ export declare const GrumpkinScalar: typeof Fq;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZ3J1bXBraW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDLGNBQWMsWUFBWSxDQUFDO0FBRTNCOzs7O0dBSUc7QUFDSCxNQUFNLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxlQUFPLE1BQU0sY0FBYyxXQUFLLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/curves/grumpkin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC,cAAc,YAAY,CAAC;AAE3B;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAChC,eAAO,MAAM,cAAc,WAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Fq } from '../bn254/field.js';
2
+ export * from './point.js';
3
+ export const GrumpkinScalar = Fq;
@@ -1,7 +1,5 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { BufferReader, FieldReader } from '../serialize/index.js';
4
- import { Fr } from './fields.js';
1
+ import { BufferReader, FieldReader } from '../../serialize/index.js';
2
+ import { Fr } from '../bn254/field.js';
5
3
  /**
6
4
  * Represents a Point on an elliptic curve with x and y coordinates.
7
5
  * The Point class provides methods for creating instances from different input types,
@@ -41,6 +39,15 @@ export declare class Point {
41
39
  isInfinite: boolean);
42
40
  toJSON(): `0x${string}`;
43
41
  static get schema(): import("zod").ZodType<Point, any, string>;
42
+ /**
43
+ * Creates a Point from a plain object without Zod validation.
44
+ * This method is optimized for performance and skips validation, making it suitable
45
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
46
+ * Handles buffers, existing instances, or objects with x, y, and isInfinite fields.
47
+ * @param obj - Plain object, buffer, or Point instance
48
+ * @returns A Point instance
49
+ */
50
+ static fromPlainObject(obj: any): Point;
44
51
  /**
45
52
  * Generate a random Point instance.
46
53
  *
@@ -117,12 +124,12 @@ export declare class Point {
117
124
  * 2. we use toBuffer when serializing notes and events and there we only work with public keys and point at infinity
118
125
  * is not considered a valid public key and the extra byte would raise DA cost.
119
126
  */
120
- toBuffer(): Buffer;
127
+ toBuffer(): Buffer<ArrayBufferLike>;
121
128
  /**
122
129
  * Converts the Point instance to a compressed Buffer representation of the coordinates.
123
130
  * @returns A Buffer representation of the Point instance
124
131
  */
125
- toCompressedBuffer(): Buffer;
132
+ toCompressedBuffer(): Buffer<ArrayBufferLike>;
126
133
  /**
127
134
  * Convert the Point instance to a hexadecimal string representation.
128
135
  * The output string is prefixed with '0x' and consists of exactly 128 hex characters,
@@ -172,4 +179,4 @@ export declare class Point {
172
179
  export declare class NotOnCurveError extends Error {
173
180
  constructor(x: Fr);
174
181
  }
175
- //# sourceMappingURL=point.d.ts.map
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZ3J1bXBraW4vcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZDOzs7OztHQUtHO0FBQ0gscUJBQWEsS0FBSztJQVNkOztPQUVHO2FBQ2EsQ0FBQyxFQUFFLEVBQUU7SUFDckI7O09BRUc7YUFDYSxDQUFDLEVBQUUsRUFBRTtJQUNyQjs7T0FFRzthQUNhLFVBQVUsRUFBRSxPQUFPO0lBbkJyQyxNQUFNLENBQUMsSUFBSSxRQUFzQztJQUNqRCxNQUFNLENBQUMsYUFBYSxTQUF3QjtJQUM1QyxNQUFNLENBQUMsd0JBQXdCLFNBQW9CO0lBRW5ELHlEQUF5RDtJQUN6RCxTQUFnQixJQUFJLFdBQVc7SUFFL0I7SUFDRTs7T0FFRztJQUNhLENBQUMsRUFBRSxFQUFFO0lBQ3JCOztPQUVHO0lBQ2EsQ0FBQyxFQUFFLEVBQUU7SUFDckI7O09BRUc7SUFDYSxVQUFVLEVBQUUsT0FBTyxFQUdwQztJQUVELE1BQU0sa0JBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSw4Q0FHaEI7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FRdEM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYSxNQUFNLG1CQVlsQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLFNBRzlDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FRekU7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxTQUU1QjtJQUVEOzs7T0FHRztJQUNILFFBQVEsU0FFUDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsU0FHM0M7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE9BQWEsWUFBWSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sa0JBYzdDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FPdkM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUUxQjtJQUVEOzs7T0FHRztJQUNILFNBQVM7Ozs7TUFNUjtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFFBQVEsNEJBU1A7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsNEJBV2pCO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsUUFBUSxrQkFFUDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxhQUFhLFdBR1o7SUFFRCxZQUFZOzs7O01BSVg7SUFHRCxtQkFBbUI7Ozs7OztNQUVsQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxXQUVoQjtJQUVELE1BQU0sWUFFTDtJQUVELElBQUksZ0JBRUg7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEdBQUcsWUFFYjtJQUVELFlBQVksWUFXWDtDQUNGO0FBRUQscUJBQWEsZUFBZ0IsU0FBUSxLQUFLO0lBQ3hDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFHaEI7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/grumpkin/point.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAEvC;;;;;GAKG;AACH,qBAAa,KAAK;IASd;;OAEG;aACa,CAAC,EAAE,EAAE;IACrB;;OAEG;aACa,CAAC,EAAE,EAAE;IACrB;;OAEG;aACa,UAAU,EAAE,OAAO;IAnBrC,MAAM,CAAC,IAAI,QAAsC;IACjD,MAAM,CAAC,aAAa,SAAwB;IAC5C,MAAM,CAAC,wBAAwB,SAAoB;IAEnD,yDAAyD;IACzD,SAAgB,IAAI,WAAW;IAE/B;IACE;;OAEG;IACa,CAAC,EAAE,EAAE;IACrB;;OAEG;IACa,CAAC,EAAE,EAAE;IACrB;;OAEG;IACa,UAAU,EAAE,OAAO,EAGpC;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,8CAGhB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAQtC;IAED;;;;OAIG;IACH,OAAa,MAAM,mBAYlB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,SAG9C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAQzE;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,SAE5B;IAED;;;OAGG;IACH,QAAQ,SAEP;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,SAG3C;IAED;;;;;;;;OAQG;IACH,OAAa,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,kBAc7C;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAOvC;IAED;;;;OAIG;IACH,UAAU,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAE1B;IAED;;;OAGG;IACH,SAAS;;;;MAMR;IAED;;;;;;;;;OASG;IACH,QAAQ,4BASP;IAED;;;OAGG;IACH,kBAAkB,4BAWjB;IAED;;;;;;OAMG;IACH,QAAQ,kBAEP;IAED;;;;;;;OAOG;IACH,aAAa,WAGZ;IAED,YAAY;;;;MAIX;IAGD,mBAAmB;;;;;;MAElB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,KAAK,WAEhB;IAED,MAAM,YAEL;IAED,IAAI,gBAEH;IAED;;;OAGG;IACH,IAAW,GAAG,YAEb;IAED,YAAY,YAWX;CACF;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,CAAC,EAAE,EAAE,EAGhB;CACF"}
@@ -1,10 +1,10 @@
1
- import { toBigIntBE } from '../bigint-buffer/index.js';
2
- import { poseidon2Hash } from '../crypto/poseidon/index.js';
3
- import { randomBoolean } from '../crypto/random/index.js';
4
- import { hexSchemaFor } from '../schemas/utils.js';
5
- import { BufferReader, FieldReader, serializeToBuffer } from '../serialize/index.js';
6
- import { bufferToHex, hexToBuffer } from '../string/index.js';
7
- import { Fr } from './fields.js';
1
+ import { toBigIntBE } from '../../bigint-buffer/index.js';
2
+ import { poseidon2Hash } from '../../crypto/poseidon/index.js';
3
+ import { randomBoolean } from '../../crypto/random/index.js';
4
+ import { hexSchemaFor } from '../../schemas/utils.js';
5
+ import { BufferReader, FieldReader, serializeToBuffer } from '../../serialize/index.js';
6
+ import { bufferToHex, hexToBuffer } from '../../string/index.js';
7
+ import { Fr } from '../bn254/field.js';
8
8
  /**
9
9
  * Represents a Point on an elliptic curve with x and y coordinates.
10
10
  * The Point class provides methods for creating instances from different input types,
@@ -35,9 +35,26 @@ import { Fr } from './fields.js';
35
35
  return this.toString();
36
36
  }
37
37
  static get schema() {
38
+ // Serialization from hex string.
38
39
  return hexSchemaFor(Point);
39
40
  }
40
41
  /**
42
+ * Creates a Point from a plain object without Zod validation.
43
+ * This method is optimized for performance and skips validation, making it suitable
44
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
45
+ * Handles buffers, existing instances, or objects with x, y, and isInfinite fields.
46
+ * @param obj - Plain object, buffer, or Point instance
47
+ * @returns A Point instance
48
+ */ static fromPlainObject(obj) {
49
+ if (obj instanceof Point) {
50
+ return obj;
51
+ }
52
+ if (obj instanceof Buffer || Buffer.isBuffer(obj)) {
53
+ return Point.fromBuffer(obj);
54
+ }
55
+ return new Point(Fr.fromPlainObject(obj.x), Fr.fromPlainObject(obj.y), obj.isInfinite ?? false);
56
+ }
57
+ /**
41
58
  * Generate a random Point instance.
42
59
  *
43
60
  * @returns A randomly generated Point instance.
@@ -160,7 +177,7 @@ import { Fr } from './fields.js';
160
177
  * is not considered a valid public key and the extra byte would raise DA cost.
161
178
  */ toBuffer() {
162
179
  if (this.isInfinite) {
163
- throw new Error('Cannot serialize infinite point without isInfinite flag');
180
+ throw new Error('Cannot serialize infinite point with isInfinite flag');
164
181
  }
165
182
  const buf = serializeToBuffer([
166
183
  this.x,
@@ -215,10 +232,10 @@ import { Fr } from './fields.js';
215
232
  /* eslint-enable camelcase */ }
216
233
  // Used for IvpkM, OvpkM, NpkM and TpkM. TODO(#8124): Consider removing this method.
217
234
  toWrappedNoirStruct() {
218
- /* eslint-disable camelcase */ return {
235
+ return {
219
236
  inner: this.toNoirStruct()
220
237
  };
221
- /* eslint-enable camelcase */ }
238
+ }
222
239
  /**
223
240
  * Check if two Point instances are equal by comparing their buffer values.
224
241
  * Returns true if the buffer values are the same, and false otherwise.
@@ -1,2 +1,2 @@
1
1
  export * from './memoize.js';
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIn0=
@@ -1,2 +1,2 @@
1
1
  export declare function memoize<This extends object, Result>(fn: () => Result, context: ClassMethodDecoratorContext): (this: This) => Result;
2
- //# sourceMappingURL=memoize.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvcnMvbWVtb2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3QkFBZ0IsT0FBTyxDQUFDLElBQUksU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sRUFBRSxPQUFPLEVBQUUsMkJBQTJCLDBCQVUxRyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/decorators/memoize.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,OAAO,EAAE,2BAA2B,UAClF,IAAI,YAS5B"}
1
+ {"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["../../src/decorators/memoize.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,OAAO,EAAE,2BAA2B,0BAU1G"}
@@ -18,4 +18,4 @@ export declare class TimeoutError extends Error {
18
18
  export declare class AbortError extends Error {
19
19
  readonly name = "AbortError";
20
20
  }
21
- //# sourceMappingURL=index.d.ts.map
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gscUJBQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsU0FBeUIsSUFBSSxvQkFBb0I7Q0FDbEQ7QUFFRDs7R0FFRztBQUNILHFCQUFhLFlBQWEsU0FBUSxLQUFLO0lBQ3JDLFNBQXlCLElBQUksa0JBQWtCO0NBQ2hEO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxVQUFXLFNBQVEsS0FBSztJQUNuQyxTQUF5QixJQUFJLGdCQUFnQjtDQUM5QyJ9
@@ -1,8 +1,5 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- /// <reference types="node" resolution-mode="require"/>
4
1
  import { inspect } from 'util';
5
- import { Fr } from '../fields/index.js';
2
+ import { Fr } from '../curves/bn254/index.js';
6
3
  import { BufferReader, FieldReader } from '../serialize/index.js';
7
4
  /**
8
5
  * Represents an Ethereum address as a 20-byte buffer and provides various utility methods
@@ -26,6 +23,15 @@ export declare class EthAddress {
26
23
  * @returns An EthAddress instance.
27
24
  */
28
25
  static fromString(address: string): EthAddress;
26
+ /**
27
+ * Creates an EthAddress from a plain object without Zod validation.
28
+ * This method is optimized for performance and skips validation, making it suitable
29
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
30
+ * Handles buffers (20 or 32 bytes), strings, or existing instances.
31
+ * @param obj - Plain object, buffer, string, or EthAddress instance
32
+ * @returns An EthAddress instance
33
+ */
34
+ static fromPlainObject(obj: any): EthAddress;
29
35
  /**
30
36
  * Create a random EthAddress instance with 20 random bytes.
31
37
  * This method generates a new Ethereum address with a randomly generated set of 20 bytes.
@@ -70,7 +76,7 @@ export declare class EthAddress {
70
76
  * @param address - The Ethereum address as a hex-encoded string.
71
77
  * @returns The Ethereum address in its checksum format.
72
78
  */
73
- static toChecksumAddress(address: string): string;
79
+ static toChecksumAddress(address: string): `0x${string}`;
74
80
  /**
75
81
  * Checks whether the given EthAddress instance is equal to the current instance.
76
82
  * Equality is determined by comparing the underlying byte buffers of both instances.
@@ -95,12 +101,12 @@ export declare class EthAddress {
95
101
  *
96
102
  * @returns A checksummed Ethereum address string.
97
103
  */
98
- toChecksumString(): string;
104
+ toChecksumString(): `0x${string}`;
99
105
  /**
100
106
  * Returns a 20-byte buffer representation of the Ethereum address.
101
107
  * @returns A 20-byte Buffer containing the Ethereum address.
102
108
  */
103
- toBuffer(): Buffer;
109
+ toBuffer(): Buffer<ArrayBufferLike>;
104
110
  /**
105
111
  * Returns a 32-byte buffer representation of the Ethereum address, with the original 20-byte address
106
112
  * occupying the last 20 bytes and the first 12 bytes being zero-filled.
@@ -108,7 +114,7 @@ export declare class EthAddress {
108
114
  *
109
115
  * @returns A 32-byte Buffer containing the padded Ethereum address.
110
116
  */
111
- toBuffer32(): Buffer;
117
+ toBuffer32(): Buffer<ArrayBuffer>;
112
118
  /**
113
119
  * Returns a new field with the same contents as this EthAddress.
114
120
  *
@@ -128,7 +134,10 @@ export declare class EthAddress {
128
134
  * @returns The EthAddress.
129
135
  */
130
136
  static fromBuffer(buffer: Buffer | BufferReader): EthAddress;
137
+ /** Converts a number into an address. Useful for testing. */
138
+ static fromNumber(num: bigint | number): EthAddress;
131
139
  toJSON(): `0x${string}`;
132
140
  static get schema(): import("zod").ZodType<EthAddress, any, string>;
141
+ static areEqual(a: EthAddress | string, b: EthAddress | string): boolean;
133
142
  }
134
- //# sourceMappingURL=index.d.ts.map
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGgtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSWxFOzs7OztHQUtHO0FBQ0gscUJBQWEsVUFBVTtJQU1ULE9BQU8sQ0FBQyxNQUFNO0lBTDFCLGdEQUFnRDtJQUNoRCxPQUFjLGFBQWEsU0FBTTtJQUNqQywwRUFBMEU7SUFDMUUsT0FBYyxJQUFJLGFBQTBEO0lBRTVFLFlBQW9CLE1BQU0sRUFBRSxNQUFNLEVBSWpDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLGNBS3ZDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQVFsRDtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsTUFBTSxlQUVuQjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sV0FVdEM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sWUFFWjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLFdBY2pEO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBYyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBa0I5RDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxXQUU1QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsa0JBRWQ7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FFZjtJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixrQkFFdEI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLDRCQUVkO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSx3QkFJaEI7SUFFRDs7OztPQUlHO0lBQ0ksT0FBTyxPQUViO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBSWxEO0lBRUQsTUFBTSxrQkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLG1EQUdoQjtJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLFdBSTdEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-address/index.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIlE;;;;;GAKG;AACH,qBAAa,UAAU;IAMT,OAAO,CAAC,MAAM;IAL1B,gDAAgD;IAChD,OAAc,aAAa,SAAM;IACjC,0EAA0E;IAC1E,OAAc,IAAI,aAA0D;gBAExD,MAAM,EAAE,MAAM;IAMlC;;;;;;;OAOG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM;IAOxC;;;;;;OAMG;WACW,MAAM;IAIpB;;;;;;;;OAQG;WACW,SAAS,CAAC,OAAO,EAAE,MAAM;IAYvC;;;;;OAKG;IACI,MAAM;IAIb;;;;;;;OAOG;WACW,oBAAoB,CAAC,OAAO,EAAE,MAAM;IAgBlD;;;;;;;;;OASG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAoB/C;;;;;;OAMG;IACI,MAAM,CAAC,GAAG,EAAE,UAAU;IAI7B;;;;;;OAMG;IACI,QAAQ;IAIf,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB;;;;;;OAMG;IACI,gBAAgB;IAIvB;;;OAGG;IACI,QAAQ;IAIf;;;;;;OAMG;IACI,UAAU;IAMjB;;;;OAIG;IACI,OAAO;IAId;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU;IAIpC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU;IAK5D,MAAM;IAIN,MAAM,KAAK,MAAM,mDAEhB;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-address/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIlE;;;;;GAKG;AACH,qBAAa,UAAU;IAMT,OAAO,CAAC,MAAM;IAL1B,gDAAgD;IAChD,OAAc,aAAa,SAAM;IACjC,0EAA0E;IAC1E,OAAc,IAAI,aAA0D;IAE5E,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;;;;;OAOG;IACH,OAAc,UAAU,CAAC,OAAO,EAAE,MAAM,cAKvC;IAED;;;;;;;OAOG;IACH,OAAc,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQlD;IAED;;;;;;OAMG;IACH,OAAc,MAAM,eAEnB;IAED;;;;;;;;OAQG;IACH,OAAc,SAAS,CAAC,OAAO,EAAE,MAAM,WAUtC;IAED;;;;;OAKG;IACI,MAAM,YAEZ;IAED;;;;;;;OAOG;IACH,OAAc,oBAAoB,CAAC,OAAO,EAAE,MAAM,WAcjD;IAED;;;;;;;;;OASG;IACH,OAAc,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAkB9D;IAED;;;;;;OAMG;IACI,MAAM,CAAC,GAAG,EAAE,UAAU,WAE5B;IAED;;;;;;OAMG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED;;;;;;OAMG;IACI,gBAAgB,kBAEtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;;;OAMG;IACI,UAAU,wBAIhB;IAED;;;;OAIG;IACI,OAAO,OAEb;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAEnC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAG3D;IAED,6DAA6D;IAC7D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAIlD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,mDAGhB;IAED,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,WAI7D;CACF"}
@@ -1,11 +1,13 @@
1
+ var _computedKey;
1
2
  import { inspect } from 'util';
2
3
  import { keccak256String } from '../crypto/keccak/index.js';
3
4
  import { randomBytes } from '../crypto/random/index.js';
4
- import { Fr } from '../fields/index.js';
5
+ import { Fr } from '../curves/bn254/index.js';
5
6
  import { hexSchemaFor } from '../schemas/utils.js';
6
7
  import { BufferReader, FieldReader } from '../serialize/index.js';
7
8
  import { TypeRegistry } from '../serialize/type_registry.js';
8
9
  import { bufferToHex } from '../string/index.js';
10
+ _computedKey = inspect.custom;
9
11
  /**
10
12
  * Represents an Ethereum address as a 20-byte buffer and provides various utility methods
11
13
  * for converting between different representations, generating random addresses, validating
@@ -35,6 +37,22 @@ import { bufferToHex } from '../string/index.js';
35
37
  return new EthAddress(Buffer.from(address.replace(/^0x/i, ''), 'hex'));
36
38
  }
37
39
  /**
40
+ * Creates an EthAddress from a plain object without Zod validation.
41
+ * This method is optimized for performance and skips validation, making it suitable
42
+ * for deserializing trusted data (e.g., from C++ via MessagePack).
43
+ * Handles buffers (20 or 32 bytes), strings, or existing instances.
44
+ * @param obj - Plain object, buffer, string, or EthAddress instance
45
+ * @returns An EthAddress instance
46
+ */ static fromPlainObject(obj) {
47
+ if (obj instanceof EthAddress) {
48
+ return obj;
49
+ }
50
+ if (obj instanceof Buffer || Buffer.isBuffer(obj)) {
51
+ return obj.length === 20 ? new EthAddress(obj) : EthAddress.fromField(new Fr(obj));
52
+ }
53
+ return EthAddress.fromString(obj);
54
+ }
55
+ /**
38
56
  * Create a random EthAddress instance with 20 random bytes.
39
57
  * This method generates a new Ethereum address with a randomly generated set of 20 bytes.
40
58
  * It is useful for generating test addresses or unique identifiers.
@@ -132,7 +150,7 @@ import { bufferToHex } from '../string/index.js';
132
150
  */ toString() {
133
151
  return bufferToHex(this.buffer);
134
152
  }
135
- [inspect.custom]() {
153
+ [_computedKey]() {
136
154
  return `EthAddress<${this.toString()}>`;
137
155
  }
138
156
  /**
@@ -187,12 +205,23 @@ import { bufferToHex } from '../string/index.js';
187
205
  const reader = BufferReader.asReader(buffer);
188
206
  return new EthAddress(reader.readBytes(EthAddress.SIZE_IN_BYTES));
189
207
  }
208
+ /** Converts a number into an address. Useful for testing. */ static fromNumber(num) {
209
+ const buffer = Buffer.alloc(EthAddress.SIZE_IN_BYTES);
210
+ buffer.writeBigUInt64BE(BigInt(num), EthAddress.SIZE_IN_BYTES - 8);
211
+ return new EthAddress(buffer);
212
+ }
190
213
  toJSON() {
191
214
  return this.toString();
192
215
  }
193
216
  static get schema() {
217
+ // Serialization from hex string.
194
218
  return hexSchemaFor(EthAddress, EthAddress.isAddress);
195
219
  }
220
+ static areEqual(a, b) {
221
+ const addrA = typeof a === 'string' ? EthAddress.fromString(a) : a;
222
+ const addrB = typeof b === 'string' ? EthAddress.fromString(b) : b;
223
+ return addrA.equals(addrB);
224
+ }
196
225
  }
197
226
  // For deserializing JSON.
198
227
  TypeRegistry.register('EthAddress', EthAddress);
@@ -1,22 +1,20 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
1
  import { Buffer32 } from '@aztec/foundation/buffer';
4
2
  import { BufferReader } from '@aztec/foundation/serialize';
5
3
  import { z } from 'zod';
6
- /**Viem Signature
7
- *
8
- * A version of the Signature class that uses `0x${string}` values for r and s rather than
9
- * Buffer32s
4
+ /**
5
+ * A version of the Signature class that uses `0x${string}` values for r and s rather than Buffer32s
10
6
  */
11
7
  export type ViemSignature = {
12
8
  r: `0x${string}`;
13
9
  s: `0x${string}`;
14
10
  v: number;
15
- isEmpty: boolean;
11
+ };
12
+ export type ViemTransactionSignature = {
13
+ r: `0x${string}`;
14
+ s: `0x${string}`;
15
+ yParity: 0 | 1;
16
16
  };
17
17
  /**
18
- * Signature
19
- *
20
18
  * Contains a signature split into it's primary components (r,s,v)
21
19
  */
22
20
  export declare class Signature {
@@ -26,18 +24,15 @@ export declare class Signature {
26
24
  readonly s: Buffer32;
27
25
  /** The v value of the signature */
28
26
  readonly v: number;
29
- /** Does this struct store an empty signature */
30
- readonly isEmpty: boolean;
31
27
  private size;
28
+ readonly empty: boolean;
32
29
  constructor(
33
30
  /** The r value of the signature */
34
31
  r: Buffer32,
35
32
  /** The s value of the signature */
36
33
  s: Buffer32,
37
34
  /** The v value of the signature */
38
- v: number,
39
- /** Does this struct store an empty signature */
40
- isEmpty?: boolean);
35
+ v: number);
41
36
  static fromBuffer(buf: Buffer | BufferReader): Signature;
42
37
  static isValidString(sig: `0x${string}`): boolean;
43
38
  /**
@@ -46,8 +41,11 @@ export declare class Signature {
46
41
  * default serialization of u32
47
42
  */
48
43
  static fromString(sig: `0x${string}`): Signature;
44
+ static fromViemSignature(sig: ViemSignature): Signature;
45
+ static fromViemTransactionSignature(sig: ViemTransactionSignature): Signature;
49
46
  static random(): Signature;
50
47
  static empty(): Signature;
48
+ isEmpty(): boolean;
51
49
  equals(other: Signature): boolean;
52
50
  toBuffer(): Buffer;
53
51
  getSize(): number;
@@ -56,7 +54,11 @@ export declare class Signature {
56
54
  * Return the signature with `0x${string}` encodings for r and s
57
55
  */
58
56
  toViemSignature(): ViemSignature;
57
+ /**
58
+ * Return the signature with `0x${string}` encodings for r and s. Verifies v is valid
59
+ */
60
+ toViemTransactionSignature(): ViemTransactionSignature;
59
61
  toJSON(): `0x${string}`;
60
62
  static get schema(): z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, Signature, string>;
61
63
  }
62
- //# sourceMappingURL=eth_signature.d.ts.map
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBSXhCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBT2xCLG1DQUFtQzthQUNuQixDQUFDLEVBQUUsUUFBUTtJQUMzQixtQ0FBbUM7YUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO2FBQ25CLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsTUFBTSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBRXpCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBRXhCO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBRWhDO0lBRUQsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxPQUFPLElBQUksTUFBTSxDQVFoQjtJQUVELFFBQVEsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUV4QjtJQUVEOztPQUVHO0lBQ0gsZUFBZSxJQUFJLGFBQWEsQ0FNL0I7SUFFRDs7T0FFRztJQUNILDBCQUEwQixJQUFJLHdCQUF3QixDQVNyRDtJQUVELE1BQU0sa0JBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSwySEFNaEI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,SAAS;IAKlB,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,MAAM;IACzB,gDAAgD;aAChC,OAAO,EAAE,OAAO;IAVlC,OAAO,CAAC,IAAI,CAAqB;;IAG/B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,MAAM;IACzB,gDAAgD;IAChC,OAAO,GAAE,OAAe;IAG1C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAYxD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO;IAIjD;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS;IAYhD,MAAM,CAAC,MAAM,IAAI,SAAS;IAI1B,MAAM,CAAC,KAAK,IAAI,SAAS;IAIzB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIjC,QAAQ,IAAI,MAAM;IAMlB,OAAO,IAAI,MAAM;IAUjB,QAAQ,IAAI,KAAK,MAAM,EAAE;IAIzB;;OAEG;IACH,eAAe,IAAI,aAAa;IAShC,MAAM;IAIN,MAAM,KAAK,MAAM,2HAMhB;CACF"}
1
+ {"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAOlB,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,MAAM;IAV3B,OAAO,CAAC,IAAI,CAAqB;IAEjC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B;IACE,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,MAAM,EAG1B;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQvD;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAEhD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAQ/C;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAEtD;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,CAE5E;IAED,MAAM,CAAC,MAAM,IAAI,SAAS,CAEzB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,MAAM,CAQhB;IAED,QAAQ,IAAI,KAAK,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,eAAe,IAAI,aAAa,CAM/B;IAED;;OAEG;IACH,0BAA0B,IAAI,wBAAwB,CASrD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,2HAMhB;CACF"}
@@ -3,29 +3,26 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import { z } from 'zod';
4
4
  import { hasHexPrefix, hexToBuffer } from '../string/index.js';
5
5
  /**
6
- * Signature
7
- *
8
6
  * Contains a signature split into it's primary components (r,s,v)
9
7
  */ export class Signature {
10
8
  r;
11
9
  s;
12
10
  v;
13
- isEmpty;
14
11
  // Cached values
15
12
  size;
16
- constructor(/** The r value of the signature */ r, /** The s value of the signature */ s, /** The v value of the signature */ v, /** Does this struct store an empty signature */ isEmpty = false){
13
+ empty;
14
+ constructor(/** The r value of the signature */ r, /** The s value of the signature */ s, /** The v value of the signature */ v){
17
15
  this.r = r;
18
16
  this.s = s;
19
17
  this.v = v;
20
- this.isEmpty = isEmpty;
18
+ this.empty = r.isZero() && s.isZero() && v === 0;
21
19
  }
22
20
  static fromBuffer(buf) {
23
21
  const reader = BufferReader.asReader(buf);
24
22
  const r = reader.readObject(Buffer32);
25
23
  const s = reader.readObject(Buffer32);
26
24
  const v = reader.readNumber();
27
- const isEmpty = r.isZero() && s.isZero();
28
- return new Signature(r, s, v, isEmpty);
25
+ return new Signature(r, s, v);
29
26
  }
30
27
  static isValidString(sig) {
31
28
  return /^0x[0-9a-f]{129,}$/i.test(sig);
@@ -40,26 +37,32 @@ import { hasHexPrefix, hexToBuffer } from '../string/index.js';
40
37
  const r = reader.readObject(Buffer32);
41
38
  const s = reader.readObject(Buffer32);
42
39
  const v = parseInt(sig.slice(2 + 64 * 2), 16);
43
- const isEmpty = r.isZero() && s.isZero();
44
- return new Signature(r, s, v, isEmpty);
40
+ return new Signature(r, s, v);
41
+ }
42
+ static fromViemSignature(sig) {
43
+ return new Signature(Buffer32.fromBuffer(hexToBuffer(sig.r)), Buffer32.fromBuffer(hexToBuffer(sig.s)), sig.v);
44
+ }
45
+ static fromViemTransactionSignature(sig) {
46
+ return new Signature(Buffer32.fromBuffer(hexToBuffer(sig.r)), Buffer32.fromBuffer(hexToBuffer(sig.s)), sig.yParity);
45
47
  }
46
48
  static random() {
47
- return new Signature(Buffer32.random(), Buffer32.random(), Math.floor(Math.random() * 2), false);
49
+ return new Signature(Buffer32.random(), Buffer32.random(), 1);
48
50
  }
49
51
  static empty() {
50
- return new Signature(Buffer32.ZERO, Buffer32.ZERO, 0, true);
52
+ return new Signature(Buffer32.ZERO, Buffer32.ZERO, 0);
53
+ }
54
+ isEmpty() {
55
+ return this.empty;
51
56
  }
52
57
  equals(other) {
53
- return this.r.equals(other.r) && this.s.equals(other.s) && this.v === other.v && this.isEmpty === other.isEmpty;
58
+ return this.r.equals(other.r) && this.s.equals(other.s) && this.v === other.v && this.empty === other.empty;
54
59
  }
55
60
  toBuffer() {
56
- const buffer = serializeToBuffer([
61
+ return serializeToBuffer([
57
62
  this.r,
58
63
  this.s,
59
64
  this.v
60
65
  ]);
61
- this.size = buffer.length;
62
- return buffer;
63
66
  }
64
67
  getSize() {
65
68
  // We cache size to avoid recalculating it
@@ -78,8 +81,19 @@ import { hasHexPrefix, hexToBuffer } from '../string/index.js';
78
81
  return {
79
82
  r: this.r.toString(),
80
83
  s: this.s.toString(),
81
- v: this.v,
82
- isEmpty: this.isEmpty
84
+ v: this.v
85
+ };
86
+ }
87
+ /**
88
+ * Return the signature with `0x${string}` encodings for r and s. Verifies v is valid
89
+ */ toViemTransactionSignature() {
90
+ if (this.v !== 0 && this.v !== 1) {
91
+ throw new Error('Invalid transaction signature');
92
+ }
93
+ return {
94
+ r: this.r.toString(),
95
+ s: this.s.toString(),
96
+ yParity: this.v
83
97
  };
84
98
  }
85
99
  toJSON() {