@aztec/foundation 0.0.1-commit.4d79d1f2d → 0.0.1-commit.4d9804df

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 (310) hide show
  1. package/dest/bigint-buffer/index.d.ts +1 -1
  2. package/dest/bigint-buffer/index.d.ts.map +1 -1
  3. package/dest/bigint-buffer/index.js +6 -1
  4. package/dest/branded-types/block_number.d.ts +3 -3
  5. package/dest/branded-types/block_number.d.ts.map +1 -1
  6. package/dest/branded-types/block_number.js +15 -4
  7. package/dest/branded-types/buffer32_hash.d.ts +27 -0
  8. package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
  9. package/dest/branded-types/buffer32_hash.js +12 -0
  10. package/dest/branded-types/checkpoint_number.d.ts +9 -3
  11. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  12. package/dest/branded-types/checkpoint_number.js +11 -0
  13. package/dest/branded-types/epoch.d.ts +2 -2
  14. package/dest/branded-types/epoch.d.ts.map +1 -1
  15. package/dest/branded-types/index.d.ts +2 -1
  16. package/dest/branded-types/index.d.ts.map +1 -1
  17. package/dest/branded-types/index.js +1 -0
  18. package/dest/branded-types/index_within_checkpoint.d.ts +2 -2
  19. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
  20. package/dest/branded-types/slot.d.ts +5 -2
  21. package/dest/branded-types/slot.d.ts.map +1 -1
  22. package/dest/branded-types/slot.js +3 -0
  23. package/dest/buffer/buffer16.d.ts +3 -1
  24. package/dest/buffer/buffer16.d.ts.map +1 -1
  25. package/dest/buffer/buffer32.d.ts +28 -61
  26. package/dest/buffer/buffer32.d.ts.map +1 -1
  27. package/dest/buffer/buffer32.js +29 -63
  28. package/dest/buffer/index.d.ts +2 -1
  29. package/dest/buffer/index.d.ts.map +1 -1
  30. package/dest/buffer/index.js +1 -0
  31. package/dest/buffer/utils.d.ts +3 -0
  32. package/dest/buffer/utils.d.ts.map +1 -0
  33. package/dest/buffer/utils.js +7 -0
  34. package/dest/collection/array.d.ts +11 -1
  35. package/dest/collection/array.d.ts.map +1 -1
  36. package/dest/collection/array.js +33 -0
  37. package/dest/collection/index.d.ts +3 -1
  38. package/dest/collection/index.d.ts.map +1 -1
  39. package/dest/collection/index.js +2 -0
  40. package/dest/collection/lru_map.d.ts +41 -0
  41. package/dest/collection/lru_map.d.ts.map +1 -0
  42. package/dest/collection/lru_map.js +119 -0
  43. package/dest/collection/lru_set.d.ts +35 -0
  44. package/dest/collection/lru_set.d.ts.map +1 -0
  45. package/dest/collection/lru_set.js +95 -0
  46. package/dest/committable/committable.js +1 -1
  47. package/dest/config/env_var.d.ts +2 -2
  48. package/dest/config/env_var.d.ts.map +1 -1
  49. package/dest/config/index.d.ts +67 -37
  50. package/dest/config/index.d.ts.map +1 -1
  51. package/dest/config/index.js +86 -70
  52. package/dest/config/network_config.d.ts +15 -41
  53. package/dest/config/network_config.d.ts.map +1 -1
  54. package/dest/config/network_config.js +4 -1
  55. package/dest/config/network_name.d.ts +2 -2
  56. package/dest/config/network_name.d.ts.map +1 -1
  57. package/dest/config/network_name.js +3 -3
  58. package/dest/config/secret_value.d.ts +2 -2
  59. package/dest/config/secret_value.d.ts.map +1 -1
  60. package/dest/crypto/aes128/index.d.ts +2 -1
  61. package/dest/crypto/aes128/index.d.ts.map +1 -1
  62. package/dest/crypto/aes128/index.js +11 -2
  63. package/dest/crypto/bls/bn254_keystore.d.ts +10 -177
  64. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  65. package/dest/crypto/bls/bn254_keystore.js +22 -34
  66. package/dest/crypto/keys/index.d.ts +3 -2
  67. package/dest/crypto/keys/index.d.ts.map +1 -1
  68. package/dest/crypto/keys/index.js +30 -6
  69. package/dest/crypto/poseidon/index.d.ts +1 -1
  70. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  71. package/dest/crypto/poseidon/index.js +40 -33
  72. package/dest/crypto/schnorr/index.d.ts +8 -7
  73. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  74. package/dest/crypto/schnorr/index.js +6 -6
  75. package/dest/crypto/schnorr/signature.d.ts +9 -29
  76. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  77. package/dest/crypto/schnorr/signature.js +20 -36
  78. package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
  79. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  80. package/dest/crypto/secp256k1-signer/utils.js +26 -0
  81. package/dest/curves/bls12/field.d.ts +3 -3
  82. package/dest/curves/bls12/field.d.ts.map +1 -1
  83. package/dest/curves/bls12/field.js +0 -5
  84. package/dest/curves/bls12/point.d.ts +2 -2
  85. package/dest/curves/bls12/point.d.ts.map +1 -1
  86. package/dest/curves/bn254/field.d.ts +24 -19
  87. package/dest/curves/bn254/field.d.ts.map +1 -1
  88. package/dest/curves/bn254/field.js +28 -19
  89. package/dest/curves/grumpkin/point.d.ts +14 -28
  90. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  91. package/dest/curves/grumpkin/point.js +29 -43
  92. package/dest/eth-address/index.d.ts +2 -2
  93. package/dest/eth-address/index.d.ts.map +1 -1
  94. package/dest/eth-address/index.js +0 -3
  95. package/dest/eth-signature/eth_signature.d.ts +3 -2
  96. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  97. package/dest/eth-signature/eth_signature.js +7 -2
  98. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  99. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  100. package/dest/fifo/fifo_frame_reader.js +91 -0
  101. package/dest/fifo/index.d.ts +2 -0
  102. package/dest/fifo/index.d.ts.map +1 -0
  103. package/dest/fifo/index.js +1 -0
  104. package/dest/fifo_set/fifo_set.d.ts +15 -0
  105. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  106. package/dest/fifo_set/fifo_set.js +39 -0
  107. package/dest/fifo_set/index.d.ts +2 -0
  108. package/dest/fifo_set/index.d.ts.map +1 -0
  109. package/dest/fifo_set/index.js +1 -0
  110. package/dest/jest/setup.js +24 -0
  111. package/dest/json-rpc/client/fetch.d.ts +1 -1
  112. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  113. package/dest/json-rpc/client/fetch.js +4 -3
  114. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  115. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  116. package/dest/json-rpc/client/safe_json_rpc_client.js +3 -3
  117. package/dest/json-rpc/client/undici.d.ts +1 -1
  118. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  119. package/dest/json-rpc/client/undici.js +5 -3
  120. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  121. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  122. package/dest/json-rpc/fixtures/test_state.js +57 -17
  123. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  124. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  125. package/dest/json-rpc/server/api_key_auth.js +57 -0
  126. package/dest/json-rpc/server/index.d.ts +2 -1
  127. package/dest/json-rpc/server/index.d.ts.map +1 -1
  128. package/dest/json-rpc/server/index.js +1 -0
  129. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
  130. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  131. package/dest/json-rpc/server/safe_json_rpc_server.js +27 -13
  132. package/dest/log/bigint-utils.d.ts +5 -0
  133. package/dest/log/bigint-utils.d.ts.map +1 -0
  134. package/dest/log/bigint-utils.js +21 -0
  135. package/dest/log/gcloud-logger-config.d.ts +1 -1
  136. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  137. package/dest/log/gcloud-logger-config.js +3 -0
  138. package/dest/log/pino-logger.d.ts +1 -1
  139. package/dest/log/pino-logger.d.ts.map +1 -1
  140. package/dest/log/pino-logger.js +21 -2
  141. package/dest/noir/noir_package_config.d.ts +19 -104
  142. package/dest/noir/noir_package_config.d.ts.map +1 -1
  143. package/dest/noir/noir_package_config.js +1 -1
  144. package/dest/promise/running-promise.d.ts +5 -4
  145. package/dest/promise/running-promise.d.ts.map +1 -1
  146. package/dest/promise/running-promise.js +7 -3
  147. package/dest/queue/batch_queue.d.ts +1 -1
  148. package/dest/queue/batch_queue.d.ts.map +1 -1
  149. package/dest/queue/batch_queue.js +1 -0
  150. package/dest/retry/index.d.ts +31 -3
  151. package/dest/retry/index.d.ts.map +1 -1
  152. package/dest/retry/index.js +44 -2
  153. package/dest/schemas/api.d.ts +12 -10
  154. package/dest/schemas/api.d.ts.map +1 -1
  155. package/dest/schemas/api.js +7 -1
  156. package/dest/schemas/parse.d.ts +4 -4
  157. package/dest/schemas/parse.d.ts.map +1 -1
  158. package/dest/schemas/parse.js +6 -5
  159. package/dest/schemas/schemas.d.ts +15 -15
  160. package/dest/schemas/types.d.ts +3 -3
  161. package/dest/schemas/types.d.ts.map +1 -1
  162. package/dest/schemas/utils.d.ts +7 -11
  163. package/dest/schemas/utils.d.ts.map +1 -1
  164. package/dest/schemas/utils.js +2 -18
  165. package/dest/serialize/buffer_reader.d.ts +8 -1
  166. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  167. package/dest/serialize/buffer_reader.js +13 -0
  168. package/dest/serialize/buffer_sink.d.ts +134 -0
  169. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  170. package/dest/serialize/buffer_sink.js +297 -0
  171. package/dest/serialize/index.d.ts +2 -1
  172. package/dest/serialize/index.d.ts.map +1 -1
  173. package/dest/serialize/index.js +1 -0
  174. package/dest/serialize/serialize.d.ts +19 -1
  175. package/dest/serialize/serialize.d.ts.map +1 -1
  176. package/dest/serialize/serialize.js +31 -0
  177. package/dest/sleep/index.d.ts +2 -1
  178. package/dest/sleep/index.d.ts.map +1 -1
  179. package/dest/sleep/index.js +10 -1
  180. package/dest/string/index.js +1 -1
  181. package/dest/testing/files/index.d.ts +2 -3
  182. package/dest/testing/files/index.d.ts.map +1 -1
  183. package/dest/testing/files/index.js +1 -2
  184. package/dest/timer/date.d.ts +3 -1
  185. package/dest/timer/date.d.ts.map +1 -1
  186. package/dest/timer/date.js +4 -0
  187. package/dest/timer/index.d.ts +2 -2
  188. package/dest/timer/index.d.ts.map +1 -1
  189. package/dest/timer/index.js +1 -1
  190. package/dest/timer/timeout.d.ts +3 -1
  191. package/dest/timer/timeout.d.ts.map +1 -1
  192. package/dest/timer/timeout.js +26 -0
  193. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  194. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  195. package/dest/transport/index.d.ts +1 -2
  196. package/dest/transport/index.d.ts.map +1 -1
  197. package/dest/transport/index.js +0 -1
  198. package/dest/transport/transport_client.js +2 -2
  199. package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
  200. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
  201. package/dest/trees/balanced_merkle_tree_root.js +2 -3
  202. package/dest/trees/hasher.d.ts +3 -2
  203. package/dest/trees/hasher.d.ts.map +1 -1
  204. package/dest/trees/hasher.js +5 -5
  205. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  206. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  207. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  208. package/dest/trees/membership_witness.d.ts +2 -6
  209. package/dest/trees/membership_witness.d.ts.map +1 -1
  210. package/dest/trees/membership_witness.js +0 -9
  211. package/dest/trees/merkle_tree_calculator.d.ts +4 -2
  212. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  213. package/dest/trees/merkle_tree_calculator.js +1 -5
  214. package/dest/trees/sibling_path.d.ts +5 -4
  215. package/dest/trees/sibling_path.d.ts.map +1 -1
  216. package/dest/trees/sibling_path.js +10 -8
  217. package/dest/trees/unbalanced_merkle_tree_root.d.ts +2 -3
  218. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -1
  219. package/dest/trees/unbalanced_merkle_tree_root.js +2 -3
  220. package/dest/types/index.d.ts +23 -1
  221. package/dest/types/index.d.ts.map +1 -1
  222. package/dest/types/index.js +15 -0
  223. package/package.json +6 -4
  224. package/src/bigint-buffer/index.ts +6 -1
  225. package/src/branded-types/block_number.ts +20 -2
  226. package/src/branded-types/buffer32_hash.ts +38 -0
  227. package/src/branded-types/checkpoint_number.ts +16 -1
  228. package/src/branded-types/epoch.ts +1 -1
  229. package/src/branded-types/index.ts +1 -0
  230. package/src/branded-types/index_within_checkpoint.ts +1 -1
  231. package/src/branded-types/slot.ts +6 -1
  232. package/src/buffer/buffer16.ts +3 -0
  233. package/src/buffer/buffer32.ts +39 -68
  234. package/src/buffer/index.ts +1 -0
  235. package/src/buffer/utils.ts +8 -0
  236. package/src/collection/array.ts +34 -0
  237. package/src/collection/index.ts +2 -0
  238. package/src/collection/lru_map.ts +143 -0
  239. package/src/collection/lru_set.ts +115 -0
  240. package/src/committable/committable.ts +1 -1
  241. package/src/config/env_var.ts +77 -24
  242. package/src/config/index.ts +157 -121
  243. package/src/config/network_config.ts +3 -0
  244. package/src/config/network_name.ts +6 -6
  245. package/src/config/secret_value.ts +1 -1
  246. package/src/crypto/aes128/index.ts +11 -2
  247. package/src/crypto/bls/bn254_keystore.ts +33 -43
  248. package/src/crypto/keys/index.ts +20 -4
  249. package/src/crypto/poseidon/index.ts +42 -34
  250. package/src/crypto/schnorr/index.ts +9 -8
  251. package/src/crypto/schnorr/signature.ts +17 -46
  252. package/src/crypto/secp256k1-signer/utils.ts +32 -0
  253. package/src/curves/bls12/field.ts +0 -7
  254. package/src/curves/bn254/field.ts +41 -36
  255. package/src/curves/grumpkin/point.ts +23 -40
  256. package/src/eth-address/index.ts +0 -4
  257. package/src/eth-signature/eth_signature.ts +7 -1
  258. package/src/fifo/fifo_frame_reader.ts +113 -0
  259. package/src/fifo/index.ts +1 -0
  260. package/src/fifo_set/fifo_set.ts +52 -0
  261. package/src/fifo_set/index.ts +1 -0
  262. package/src/jest/setup.mjs +27 -0
  263. package/src/json-rpc/client/fetch.ts +4 -3
  264. package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
  265. package/src/json-rpc/client/undici.ts +5 -3
  266. package/src/json-rpc/fixtures/test_state.ts +10 -10
  267. package/src/json-rpc/server/api_key_auth.ts +63 -0
  268. package/src/json-rpc/server/index.ts +1 -0
  269. package/src/json-rpc/server/safe_json_rpc_server.ts +31 -13
  270. package/src/log/bigint-utils.ts +25 -0
  271. package/src/log/gcloud-logger-config.ts +5 -0
  272. package/src/log/pino-logger.ts +23 -2
  273. package/src/noir/noir_package_config.ts +32 -20
  274. package/src/promise/running-promise.ts +8 -5
  275. package/src/queue/batch_queue.ts +1 -0
  276. package/src/retry/index.ts +66 -4
  277. package/src/schemas/api.ts +25 -25
  278. package/src/schemas/parse.ts +9 -6
  279. package/src/schemas/schemas.ts +4 -4
  280. package/src/schemas/types.ts +2 -2
  281. package/src/schemas/utils.ts +4 -38
  282. package/src/serialize/buffer_reader.ts +15 -0
  283. package/src/serialize/buffer_sink.ts +350 -0
  284. package/src/serialize/index.ts +1 -0
  285. package/src/serialize/serialize.ts +32 -0
  286. package/src/sleep/index.ts +10 -1
  287. package/src/string/index.ts +1 -1
  288. package/src/testing/files/index.ts +1 -2
  289. package/src/timer/date.ts +6 -0
  290. package/src/timer/index.ts +1 -1
  291. package/src/timer/timeout.ts +31 -0
  292. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  293. package/src/transport/index.ts +0 -1
  294. package/src/transport/transport_client.ts +2 -2
  295. package/src/trees/balanced_merkle_tree_root.ts +2 -5
  296. package/src/trees/hasher.ts +6 -3
  297. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  298. package/src/trees/membership_witness.ts +0 -8
  299. package/src/trees/merkle_tree_calculator.ts +4 -10
  300. package/src/trees/sibling_path.ts +11 -6
  301. package/src/trees/unbalanced_merkle_tree_root.ts +2 -5
  302. package/src/types/index.ts +47 -0
  303. package/dest/crypto/serialize.d.ts +0 -51
  304. package/dest/crypto/serialize.d.ts.map +0 -1
  305. package/dest/crypto/serialize.js +0 -68
  306. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  307. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  308. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  309. package/src/crypto/serialize.ts +0 -85
  310. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
@@ -1,5 +1,4 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { BufferReader } from '@aztec/foundation/serialize';
3
2
  import type { Signature } from '../signature/index.js';
4
3
  /**
5
4
  * Schnorr signature used for transactions.
@@ -11,28 +10,7 @@ export declare class SchnorrSignature implements Signature {
11
10
  * The size of the signature in bytes.
12
11
  */
13
12
  static SIZE: number;
14
- /**
15
- * An empty signature.
16
- */
17
- static EMPTY: SchnorrSignature;
18
13
  constructor(buffer: Buffer);
19
- /**
20
- * Determines if the provided signature is valid or not.
21
- * @param signature - The data to be checked.
22
- * @returns Boolean indicating if the provided data is a valid schnorr signature.
23
- */
24
- static isSignature(signature: string): boolean;
25
- /**
26
- * Constructs a SchnorrSignature from the provided string.
27
- * @param signature - The string to be converted to a schnorr signature.
28
- * @returns The constructed schnorr signature.
29
- */
30
- static fromString(signature: string): SchnorrSignature;
31
- /**
32
- * Generates a random schnorr signature.
33
- * @returns The randomly constructed signature.
34
- */
35
- static random(): SchnorrSignature;
36
14
  /**
37
15
  * Returns the 's' component of the signature.
38
16
  * @returns A buffer containing the signature's 's' component.
@@ -48,12 +26,6 @@ export declare class SchnorrSignature implements Signature {
48
26
  * @returns A buffer containing the signature.
49
27
  */
50
28
  toBuffer(): Buffer<ArrayBufferLike>;
51
- /**
52
- * Deserializes from a buffer.
53
- * @param buffer - The buffer representation of the object.
54
- * @returns The new object.
55
- */
56
- static fromBuffer(buffer: Buffer | BufferReader): SchnorrSignature;
57
29
  /**
58
30
  * Returns the full signature as a hex string.
59
31
  * @returns A string containing the signature in hex format.
@@ -64,5 +36,13 @@ export declare class SchnorrSignature implements Signature {
64
36
  * @returns The signature components as an array of three fields
65
37
  */
66
38
  toFields(): Fr[];
39
+ /**
40
+ * Splits the signature into the four 128-bit limbs that Noir's `EmbeddedCurveScalar` consumes:
41
+ * `[s.lo, s.hi, e.lo, e.hi]`, where each component scalar is encoded as `lo + hi * 2^128`.
42
+ *
43
+ * Each 32-byte big-endian component is sliced into its top 16 bytes (`hi`) and bottom 16 bytes
44
+ * (`lo`); each half is zero-padded into a 32-byte buffer and decoded as `Fr` (big-endian).
45
+ */
46
+ toLimbFields(): [Fr, Fr, Fr, Fr];
67
47
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NjaG5vcnIvc2lnbmF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gscUJBQWEsZ0JBQWlCLFlBQVcsU0FBUztJQVdwQyxPQUFPLENBQUMsTUFBTTtJQVYxQjs7T0FFRztJQUNILE9BQWMsSUFBSSxTQUFNO0lBRXhCOztPQUVHO0lBQ0gsT0FBYyxLQUFLLG1CQUEwQztJQUU3RCxZQUFvQixNQUFNLEVBQUUsTUFBTSxFQUlqQztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxXQUUxQztJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxvQkFLekM7SUFFRDs7O09BR0c7SUFDSCxPQUFjLE1BQU0scUJBRW5CO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLDRCQUVKO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLDRCQUVKO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSw0QkFFUDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGdCQUFnQixDQUdqRTtJQUVEOzs7T0FHRztJQUNILFFBQVEsV0FFUDtJQUVEOzs7T0FHRztJQUNILFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FZZjtDQUNGIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NjaG5vcnIvc2lnbmF0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxxQkFBYSxnQkFBaUIsWUFBVyxTQUFTO0lBTXBDLE9BQU8sQ0FBQyxNQUFNO0lBTDFCOztPQUVHO0lBQ0gsT0FBYyxJQUFJLFNBQU07SUFFeEIsWUFBb0IsTUFBTSxFQUFFLE1BQU0sRUFJakM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsNEJBRUo7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsNEJBRUo7SUFFRDs7O09BR0c7SUFDSCxRQUFRLDRCQUVQO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxXQUVQO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQVlmO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBTy9CO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/signature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAY,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAWpC,OAAO,CAAC,MAAM;IAV1B;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB;;OAEG;IACH,OAAc,KAAK,mBAA0C;IAE7D,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;;OAIG;IACH,OAAc,WAAW,CAAC,SAAS,EAAE,MAAM,WAE1C;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,SAAS,EAAE,MAAM,oBAKzC;IAED;;;OAGG;IACH,OAAc,MAAM,qBAEnB;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAGjE;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAYf;CACF"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAMpC,OAAO,CAAC,MAAM;IAL1B;;OAEG;IACH,OAAc,IAAI,SAAM;IAExB,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,IAAI,CAAC,4BAEJ;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAYf;IAED;;;;;;OAMG;IACH,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAO/B;CACF"}
@@ -1,6 +1,5 @@
1
- import { randomBytes } from '@aztec/foundation/crypto/random';
2
1
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
2
+ import { mapTuple } from '@aztec/foundation/serialize';
4
3
  /**
5
4
  * Schnorr signature used for transactions.
6
5
  * @see cpp/barretenberg/cpp/src/barretenberg/crypto/schnorr/schnorr.hpp
@@ -9,9 +8,6 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
9
8
  /**
10
9
  * The size of the signature in bytes.
11
10
  */ static SIZE = 64;
12
- /**
13
- * An empty signature.
14
- */ static EMPTY = new SchnorrSignature(Buffer.alloc(64));
15
11
  constructor(buffer){
16
12
  this.buffer = buffer;
17
13
  if (buffer.length !== SchnorrSignature.SIZE) {
@@ -19,29 +15,6 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
19
15
  }
20
16
  }
21
17
  /**
22
- * Determines if the provided signature is valid or not.
23
- * @param signature - The data to be checked.
24
- * @returns Boolean indicating if the provided data is a valid schnorr signature.
25
- */ static isSignature(signature) {
26
- return /^(0x)?[0-9a-f]{128}$/i.test(signature);
27
- }
28
- /**
29
- * Constructs a SchnorrSignature from the provided string.
30
- * @param signature - The string to be converted to a schnorr signature.
31
- * @returns The constructed schnorr signature.
32
- */ static fromString(signature) {
33
- if (!SchnorrSignature.isSignature(signature)) {
34
- throw new Error(`Invalid signature string: ${signature}`);
35
- }
36
- return new SchnorrSignature(Buffer.from(signature.replace(/^0x/i, ''), 'hex'));
37
- }
38
- /**
39
- * Generates a random schnorr signature.
40
- * @returns The randomly constructed signature.
41
- */ static random() {
42
- return new SchnorrSignature(randomBytes(64));
43
- }
44
- /**
45
18
  * Returns the 's' component of the signature.
46
19
  * @returns A buffer containing the signature's 's' component.
47
20
  */ get s() {
@@ -60,14 +33,6 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
60
33
  return this.buffer;
61
34
  }
62
35
  /**
63
- * Deserializes from a buffer.
64
- * @param buffer - The buffer representation of the object.
65
- * @returns The new object.
66
- */ static fromBuffer(buffer) {
67
- const reader = BufferReader.asReader(buffer);
68
- return new SchnorrSignature(reader.readBytes(SchnorrSignature.SIZE));
69
- }
70
- /**
71
36
  * Returns the full signature as a hex string.
72
37
  * @returns A string containing the signature in hex format.
73
38
  */ toString() {
@@ -90,4 +55,23 @@ import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
90
55
  buf3
91
56
  ], Fr.fromBuffer);
92
57
  }
58
+ /**
59
+ * Splits the signature into the four 128-bit limbs that Noir's `EmbeddedCurveScalar` consumes:
60
+ * `[s.lo, s.hi, e.lo, e.hi]`, where each component scalar is encoded as `lo + hi * 2^128`.
61
+ *
62
+ * Each 32-byte big-endian component is sliced into its top 16 bytes (`hi`) and bottom 16 bytes
63
+ * (`lo`); each half is zero-padded into a 32-byte buffer and decoded as `Fr` (big-endian).
64
+ */ toLimbFields() {
65
+ const limb = (start)=>{
66
+ const buf = Buffer.alloc(32);
67
+ this.buffer.copy(buf, 16, start, start + 16);
68
+ return Fr.fromBuffer(buf);
69
+ };
70
+ return [
71
+ limb(16),
72
+ limb(0),
73
+ limb(48),
74
+ limb(32)
75
+ ];
76
+ }
93
77
  }
@@ -87,5 +87,16 @@ export declare function normalizeSignature(signature: Signature): Signature;
87
87
  * @returns The public key.
88
88
  */
89
89
  export declare function recoverPublicKey(hash: Buffer32, signature: Signature, opts?: RecoveryOpts): Buffer;
90
+ /**
91
+ * Generates a random valid ECDSA signature that is recoverable to some address.
92
+ * Since Signature.random() produces real signatures via secp256k1 signing, the result is always
93
+ * recoverable, but we verify defensively by checking tryRecoverAddress.
94
+ */
95
+ export declare function generateRecoverableSignature(): Signature;
96
+ /**
97
+ * Generates a random signature where ECDSA address recovery fails.
98
+ * Uses random r/s values (not from real signing) so that r is unlikely to be a valid secp256k1 x-coordinate.
99
+ */
100
+ export declare function generateUnrecoverableSignature(): Signature;
90
101
  export {};
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2VjcDI1NmsxLXNpZ25lci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUtqRSxpQ0FBaUM7QUFDakMsS0FBSyxZQUFZLEdBQUc7SUFDbEI7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN6Qjs7T0FFRztJQUNILGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUMzQixDQUFDO0FBRUYscUJBQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBR3JEO0NBQ0Y7QUFHRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRzdEO0FBWUQ7Ozs7R0FJRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FFbEU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUdwRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxZQUFZLEdBQUcsVUFBVSxDQVVwRztBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBT25IO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLFNBVy9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFHaEU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FNN0Q7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxTQUFTLENBVWxFO0FBNkJEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEdBQUUsWUFBaUIsR0FBRyxNQUFNLENBWXRHIn0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2VjcDI1NmsxLXNpZ25lci91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUtqRSxpQ0FBaUM7QUFDakMsS0FBSyxZQUFZLEdBQUc7SUFDbEI7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN6Qjs7T0FFRztJQUNILGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztDQUMzQixDQUFDO0FBRUYscUJBQWEsY0FBZSxTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEVBR3JEO0NBQ0Y7QUFHRCx3QkFBZ0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxRQUFRLENBRzdEO0FBWUQ7Ozs7R0FJRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FFbEU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsVUFBVSxDQUdwRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxZQUFZLEdBQUcsVUFBVSxDQVVwRztBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBT25IO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLFNBVy9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFHaEU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLFNBQVMsQ0FNN0Q7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxTQUFTLENBVWxFO0FBNkJEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEdBQUUsWUFBaUIsR0FBRyxNQUFNLENBWXRHO0FBS0Q7Ozs7R0FJRztBQUNILHdCQUFnQiw0QkFBNEIsSUFBSSxTQUFTLENBUXhEO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLDhCQUE4QixJQUFJLFNBQVMsQ0FRMUQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAKjE,iCAAiC;AACjC,KAAK,YAAY,GAAG;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAGrD;CACF;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAG7D;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CAUpG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAOnH;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,SAW/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAM7D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAUlE;AA6BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,MAAM,CAYtG"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAKjE,iCAAiC;AACjC,KAAK,YAAY,GAAG;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAGrD;CACF;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAG7D;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,CAUpG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAOnH;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,SAW/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAM7D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAUlE;AA6BD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,MAAM,CAYtG;AAKD;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,SAAS,CAQxD;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,SAAS,CAQ1D"}
@@ -168,3 +168,29 @@ export function makeEthSignDigest(message) {
168
168
  const publicKey = sig.recoverPublicKey(hash.buffer).toHex(false);
169
169
  return Buffer.from(publicKey, 'hex');
170
170
  }
171
+ /** Arbitrary hash used for testing signature recoverability. */ const PROBE_HASH = Buffer32.fromBuffer(keccak256(Buffer.from('signature-recoverability-probe')));
172
+ /**
173
+ * Generates a random valid ECDSA signature that is recoverable to some address.
174
+ * Since Signature.random() produces real signatures via secp256k1 signing, the result is always
175
+ * recoverable, but we verify defensively by checking tryRecoverAddress.
176
+ */ export function generateRecoverableSignature() {
177
+ for(let i = 0; i < 100; i++){
178
+ const sig = Signature.random();
179
+ if (tryRecoverAddress(PROBE_HASH, sig) !== undefined) {
180
+ return sig;
181
+ }
182
+ }
183
+ throw new Secp256k1Error('Failed to generate a recoverable signature after 100 attempts');
184
+ }
185
+ /**
186
+ * Generates a random signature where ECDSA address recovery fails.
187
+ * Uses random r/s values (not from real signing) so that r is unlikely to be a valid secp256k1 x-coordinate.
188
+ */ export function generateUnrecoverableSignature() {
189
+ for(let i = 0; i < 100; i++){
190
+ const sig = new Signature(Buffer32.random(), Buffer32.random(), 27);
191
+ if (tryRecoverAddress(PROBE_HASH, sig) === undefined) {
192
+ return sig;
193
+ }
194
+ }
195
+ throw new Secp256k1Error('Failed to generate an unrecoverable signature after 100 attempts');
196
+ }
@@ -92,7 +92,7 @@ export declare class BLS12Fr extends BLS12Field {
92
92
  sqrt(): BLS12Fr | null;
93
93
  pow(rhs: bigint): BLS12Fr;
94
94
  toJSON(): `0x${string}`;
95
- static get schema(): import("zod").ZodType<BLS12Fr, any, string>;
95
+ static get schema(): import("zod").ZodType<BLS12Fr, string, import("zod/v4/core").$ZodTypeInternals<BLS12Fr, string>>;
96
96
  }
97
97
  /**
98
98
  * Fq field class.
@@ -143,6 +143,6 @@ export declare class BLS12Fq extends BLS12Field {
143
143
  sqrt(): BLS12Fq | null;
144
144
  pow(rhs: bigint): BLS12Fq;
145
145
  toJSON(): `0x${string}`;
146
- static get schema(): import("zod").ZodType<BLS12Fq, any, string>;
146
+ static get schema(): import("zod").ZodType<BLS12Fq, string, import("zod/v4/core").$ZodTypeInternals<BLS12Fq, string>>;
147
147
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFaEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBY3ZDOztHQUVHO0FBQ0gsOEJBQXNCLFVBQVU7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBUztJQUUxQixTQUFTLGFBQWEsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxFQWlCcEQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUM7SUFDckMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDO0lBRWxDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQVFqQjtJQUVELFlBQVksSUFBSTtRQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBVWxDO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUUvQjtJQUVELEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FFM0I7SUFFRCxNQUFNLElBQUksT0FBTyxDQUVoQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE9BQU8sQ0FJcEI7SUFFRCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELE9BQU8sU0FFTjtDQUNGO0FBa0REOzs7R0FHRztBQUNILHFCQUFhLE9BQVEsU0FBUSxVQUFVO0lB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
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBY3ZDOztHQUVHO0FBQ0gsOEJBQXNCLFVBQVU7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBUztJQUUxQixTQUFTLGFBQWEsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxFQWlCcEQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUM7SUFDckMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDO0lBRWxDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQVFqQjtJQUVELFlBQVksSUFBSTtRQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBVWxDO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUUvQjtJQUVELEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FFM0I7SUFFRCxNQUFNLElBQUksT0FBTyxDQUVoQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE9BQU8sQ0FJcEI7SUFFRCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELE9BQU8sU0FFTjtDQUNGO0FBa0REOzs7R0FHRztBQUNILHFCQUFhLE9BQVEsU0FBUSxVQUFVO0lBQ3JDLE1BQU0sQ0FBQyxhQUFhLFNBQTZCO0lBQ2pELE1BQU0sQ0FBQyxPQUFPLFNBQTZCO0lBQzNDLE1BQU0sQ0FBQyxJQUFJLFVBQW1CO0lBQzlCLE1BQU0sQ0FBQyxHQUFHLFVBQW1CO0lBQzdCLE1BQU0sQ0FBQyxlQUFlLFVBQWtDO0lBRXhELFlBQVksS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxFQUUxQztJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0lBRUQsU0FBUyxDQUFDLE9BQU8sV0FFaEI7SUFFRCxTQUFTLENBQUMsSUFBSSxXQUViO0lBRUQsTUFBTSxDQUFDLE1BQU0sWUFFWjtJQUVELE1BQU0sQ0FBQyxJQUFJLFlBRVY7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLFdBRTNCO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksV0FFOUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxXQVM1QjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLFdBRS9CO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLFdBRWhEO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxXQUUzQjtJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVMsT0FLUjtJQUVELCtDQUErQztJQUUvQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sV0FFZjtJQUVELE1BQU0sWUFFTDtJQUVELE1BQU0sWUFFTDtJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxXQUVmO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLFdBRWY7SUFFRCxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sV0FFZjtJQUVELElBQUksbUJBY0g7SUFFRCxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sV0FFZDtJQUVELE1BQU0sa0JBRUw7SUFFRCxNQUFNLEtBQUssTUFBTSxxR0FFaEI7Q0FDRjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLE9BQVEsU0FBUSxVQUFVO0lBQ3JDLE1BQU0sQ0FBQyxhQUFhLFNBQTZCO0lBQ2pELE1BQU0sQ0FBQyxPQUFPLFNBQTZCO0lBQzNDLE1BQU0sQ0FBQyxJQUFJLFVBQW1CO0lBQzlCLE1BQU0sQ0FBQyxHQUFHLFVBQW1CO0lBQzdCLE1BQU0sQ0FBQyxlQUFlLFVBQWtDO0lBRXhELFlBQVksS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxFQUUxQztJQUVELENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUVmO0lBRUQsU0FBUyxDQUFDLE9BQU8sV0FFaEI7SUFFRCxTQUFTLENBQUMsSUFBSSxXQUViO0lBRUQsTUFBTSxDQUFDLE1BQU0sWUFFWjtJQUVELE1BQU0sQ0FBQyxJQUFJLFlBRVY7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLFdBRTNCO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksV0FFOUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxXQVM1QjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLFdBRS9CO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLFdBRWhEO0lBRUQsK0NBQStDO0lBRS9DLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxXQUVmO0lBRUQsTUFBTSxZQUVMO0lBRUQsTUFBTSxZQUVMO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLFdBRWY7SUFFRCxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sV0FFZjtJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxXQUVmO0lBRUQsSUFBSSxtQkFjSDtJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxXQUVkO0lBRUQsTUFBTSxrQkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLHFHQUVoQjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/field.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
5
5
  import { randomBytes } from '../../crypto/random/index.js';
6
6
  import { hexSchemaFor } from '../../schemas/utils.js';
7
7
  import { BufferReader } from '../../serialize/buffer_reader.js';
8
- import { TypeRegistry } from '../../serialize/type_registry.js';
9
8
  import { Fr } from '../bn254/field.js';
10
9
  /**
11
10
  * Base BLS12field class.
@@ -251,8 +250,6 @@ _computedKey = inspect.custom;
251
250
  return hexSchemaFor(BLS12Fr);
252
251
  }
253
252
  }
254
- // For deserializing JSON.
255
- TypeRegistry.register('BLS12Fr', BLS12Fr);
256
253
  _computedKey1 = inspect.custom;
257
254
  /**
258
255
  * Fq field class.
@@ -358,5 +355,3 @@ _computedKey1 = inspect.custom;
358
355
  return hexSchemaFor(BLS12Fq);
359
356
  }
360
357
  }
361
- // For deserializing JSON.
362
- TypeRegistry.register('BLS12Fq', BLS12Fq);
@@ -42,7 +42,7 @@ export declare class BLS12Point {
42
42
  isInfinite: boolean);
43
43
  toJSON(): `0x${string}`;
44
44
  [inspect.custom](): string;
45
- static get schema(): import("zod").ZodType<BLS12Point, any, string>;
45
+ static get schema(): import("zod").ZodType<BLS12Point, string, import("zod/v4/core").$ZodTypeInternals<BLS12Point, string>>;
46
46
  /**
47
47
  * Generate a random Point instance.
48
48
  *
@@ -226,4 +226,4 @@ export declare class BLS12Point {
226
226
  export declare class BLSPointNotOnCurveError extends Error {
227
227
  constructor(x: BLS12Fq, y?: BLS12Fq);
228
228
  }
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7SUFRbkI7O09BRUc7YUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRzthQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO2FBQ2EsVUFBVSxFQUFFLE9BQU87SUFsQnJDLE1BQU0sQ0FBQyxJQUFJLGFBQW9EO0lBQy9ELE1BQU0sQ0FBQyxHQUFHLGFBQWlHO0lBQzNHLE1BQU0sQ0FBQyxhQUFhLFNBQTZCO0lBQ2pELE1BQU0sQ0FBQyx3QkFBd0IsU0FBeUI7SUFDeEQsTUFBTSxDQUFDLGVBQWUsMEJBQXNGO0lBRTVHO0lBQ0U7O09BRUc7SUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRztJQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO0lBQ2EsVUFBVSxFQUFFLE9BQU8sRUFRcEM7SUFFRCxNQUFNLGtCQUVMO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBTWY7SUFFRCxNQUFNLEtBQUssTUFBTSxtREFFaEI7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sZUFZWjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBSTlDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sY0FFNUI7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxRQUFRLElBQUksTUFBTSxDQU1qQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBcUI1QztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsYUFBYSxTQUdaO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FFdEM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUV6QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQU8zRDtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxjQWM1QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBRXhDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBS3hDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxXQVd0QztJQUVEOzs7T0FHRztJQUNILGVBQWUsY0FFZDtJQUVEOzs7O09BSUc7SUFDSCxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUzs7OztNQU1SO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsNEJBTVA7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLGtCQUVQO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLFdBRXJCO0lBRUQ7O09BRUc7SUFDSCxNQUFNLFlBRUw7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEdBQUcsWUFFYjtJQUVELCtDQUErQztJQUUvQyxzQkFBc0IsMEJBRXJCO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQsTUFBTSxlQUVMO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxjQU1mO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLGNBRXJCO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLGNBT3BEO0NBQ0Y7QUFFRCxxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBR2xDO0NBQ0YifQ==
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYmxzMTIvcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5Qzs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7SUFRbkI7O09BRUc7YUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRzthQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO2FBQ2EsVUFBVSxFQUFFLE9BQU87SUFsQnJDLE1BQU0sQ0FBQyxJQUFJLGFBQW9EO0lBQy9ELE1BQU0sQ0FBQyxHQUFHLGFBQWlHO0lBQzNHLE1BQU0sQ0FBQyxhQUFhLFNBQTZCO0lBQ2pELE1BQU0sQ0FBQyx3QkFBd0IsU0FBeUI7SUFDeEQsTUFBTSxDQUFDLGVBQWUsMEJBQXNGO0lBRTVHO0lBQ0U7O09BRUc7SUFDYSxDQUFDLEVBQUUsT0FBTztJQUMxQjs7T0FFRztJQUNhLENBQUMsRUFBRSxPQUFPO0lBQzFCOztPQUVHO0lBQ2EsVUFBVSxFQUFFLE9BQU8sRUFRcEM7SUFFRCxNQUFNLGtCQUVMO0lBRUQsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBTWY7SUFFRCxNQUFNLEtBQUssTUFBTSwyR0FFaEI7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sZUFZWjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGNBSTlDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sY0FFNUI7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxRQUFRLElBQUksTUFBTSxDQU1qQjtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxVQUFVLENBcUI1QztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsYUFBYSxTQUdaO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsY0FFdEM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUV6QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxjQU8zRDtJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxjQWM1QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBRXhDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBS3hDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxXQVd0QztJQUVEOzs7T0FHRztJQUNILGVBQWUsY0FFZDtJQUVEOzs7O09BSUc7SUFDSCxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUzs7OztNQU1SO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsNEJBTVA7SUFFRDs7Ozs7O09BTUc7SUFDSCxRQUFRLGtCQUVQO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLFdBRXJCO0lBRUQ7O09BRUc7SUFDSCxNQUFNLFlBRUw7SUFFRDs7O09BR0c7SUFDSCxJQUFXLEdBQUcsWUFFYjtJQUVELCtDQUErQztJQUUvQyxzQkFBc0IsMEJBRXJCO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQsTUFBTSxlQUVMO0lBRUQsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLGNBRWxCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxjQU1mO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxPQUFPLGNBRXJCO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLGNBT3BEO0NBQ0Y7QUFFRCxxQkFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBR2xDO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/point.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/curves/bls12/point.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { inspect } from 'util';
2
2
  import { BufferReader } from '../../serialize/buffer_reader.js';
3
+ import type { BufferSink } from '../../serialize/buffer_sink.js';
3
4
  /**
4
5
  * Represents a field derived from BaseField.
5
6
  */
@@ -28,9 +29,11 @@ declare abstract class BaseField {
28
29
  protected constructor(value: number | bigint | boolean | BaseField | Buffer);
29
30
  protected abstract modulus(): bigint;
30
31
  /**
31
- * Converts the bigint to a Buffer.
32
+ * Converts the bigint to a Buffer. With a sink, streams the 32 big-endian bytes straight in (no allocation)
33
+ * and returns undefined; without one, returns a freshly allocated buffer.
32
34
  */
33
35
  toBuffer(): Buffer;
36
+ toBuffer(sink: BufferSink): void;
34
37
  toString(): `0x${string}`;
35
38
  toBigInt(): bigint;
36
39
  toBool(): boolean;
@@ -49,6 +52,7 @@ declare abstract class BaseField {
49
52
  lt(rhs: BaseField): boolean;
50
53
  cmp(rhs: BaseField): -1 | 0 | 1;
51
54
  static cmp(lhs: BaseField, rhs: BaseField): -1 | 0 | 1;
55
+ static cmpAsBigInt(lhs: bigint, rhs: bigint): -1 | 0 | 1;
52
56
  isZero(): boolean;
53
57
  isEmpty(): boolean;
54
58
  toFriendlyJSON(): string;
@@ -59,24 +63,31 @@ declare abstract class BaseField {
59
63
  * It maybe not read the full 32 bytes if the Buffer is shorter, but it will padded in BaseField constructor.
60
64
  */
61
65
  export declare function fromBuffer<T extends BaseField>(buffer: Buffer | BufferReader, f: DerivedField<T>): T;
62
- /** Branding to ensure fields are not interchangeable types. */
63
- export interface Fr {
64
- /** Brand. */
65
- _branding: 'Fr';
66
+ /**
67
+ * Abstract unbranded base class for BN254 scalar field elements.
68
+ * Extend this instead of Fr when defining a branded subtype (e.g. BlockHash)
69
+ * to avoid inheriting Fr's `_branding`.
70
+ */
71
+ export declare abstract class BaseFr extends BaseField {
72
+ static MODULUS: bigint;
73
+ constructor(value: number | bigint | boolean | BaseField | Buffer);
74
+ protected modulus(): bigint;
75
+ toJSON(): `0x${string}`;
66
76
  }
67
77
  /**
68
78
  * Fr field class.
69
79
  * @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
70
80
  * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
71
81
  */
72
- export declare class Fr extends BaseField {
82
+ export declare class Fr extends BaseFr {
83
+ /** Branding for nominal typing. */
84
+ private readonly _branding;
85
+ static MODULUS: bigint;
73
86
  static ZERO: Fr;
74
87
  static ONE: Fr;
75
- static MODULUS: bigint;
76
88
  static MAX_FIELD_VALUE: Fr;
77
89
  constructor(value: number | bigint | boolean | Fr | Buffer);
78
90
  [inspect.custom](): string;
79
- protected modulus(): bigint;
80
91
  static random(): Fr;
81
92
  static zero(): Fr;
82
93
  static isZero(value: Fr): boolean;
@@ -110,7 +121,6 @@ export declare class Fr extends BaseField {
110
121
  * @returns A square root of the field element (null if it does not exist).
111
122
  */
112
123
  sqrt(): Promise<Fr | null>;
113
- toJSON(): `0x${string}`;
114
124
  /**
115
125
  * Creates an Fr instance from a plain object without Zod validation.
116
126
  * This method is optimized for performance and skips validation, making it suitable
@@ -120,14 +130,7 @@ export declare class Fr extends BaseField {
120
130
  * @returns An Fr instance
121
131
  */
122
132
  static fromPlainObject(obj: any): Fr;
123
- static get schema(): import("zod").ZodType<Fr, any, string>;
124
- }
125
- /**
126
- * Branding to ensure fields are not interchangeable types.
127
- */
128
- export interface Fq {
129
- /** Brand. */
130
- _branding: 'Fq';
133
+ static get schema(): import("zod").ZodType<Fr, string, import("zod/v4/core").$ZodTypeInternals<Fr, string>>;
131
134
  }
132
135
  /**
133
136
  * Fq field class.
@@ -135,6 +138,8 @@ export interface Fq {
135
138
  * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
136
139
  */
137
140
  export declare class Fq extends BaseField {
141
+ /** Branding for nominal typing. */
142
+ private readonly _branding;
138
143
  static ZERO: Fq;
139
144
  static MODULUS: bigint;
140
145
  private static HIGH_SHIFT;
@@ -172,9 +177,9 @@ export declare class Fq extends BaseField {
172
177
  sqrt(): Promise<Fq | null>;
173
178
  toJSON(): `0x${string}`;
174
179
  toFields(): Fr[];
175
- static get schema(): import("zod").ZodType<Fq, any, string>;
180
+ static get schema(): import("zod").ZodType<Fq, string, import("zod/v4/core").$ZodTypeInternals<Fq, string>>;
176
181
  }
177
182
  /** Wraps a function that returns a buffer so that all results are reduced into a field of the given type. */
178
183
  export declare function reduceFn<TInput, TField extends BaseField>(fn: (input: TInput) => Buffer, field: DerivedField<TField>): (input: TInput) => TField;
179
184
  export {};
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFLaEU7O0dBRUc7QUFDSCxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsU0FBUyxJQUFJO0lBQ3ZDLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDcEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsdUJBQWUsU0FBUztJQUN0QixNQUFNLENBQUMsYUFBYSxTQUFNO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFTO0lBRWxDOzs7U0FHSztJQUNMLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FFbEI7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUVqQjtJQUVELFNBQVMsYUFBYSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFtQjFFO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBRXJDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sSUFBSSxPQUFPLENBRWhCO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRDs7O09BR0c7SUFDSCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELGFBQWEsSUFBSSxNQUFNLENBR3RCO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxT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
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvYm4yNTQvZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUsvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakU7O0dBRUc7QUFDSCxLQUFLLFlBQVksQ0FBQyxDQUFDLFNBQVMsU0FBUyxJQUFJO0lBQ3ZDLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDcEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsTUFBTSxDQUFDO0NBQ2pCLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsdUJBQWUsU0FBUztJQUN0QixNQUFNLENBQUMsYUFBYSxTQUFNO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFTO0lBRWxDOzs7U0FHSztJQUNMLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FFbEI7SUFFRCxpQ0FBaUM7SUFDakMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUVqQjtJQUVELFNBQVMsYUFBYSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFtQjFFO0lBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDO0lBRXJDOzs7T0FHRztJQUNILFFBQVEsSUFBSSxNQUFNLENBQUM7SUFDbkIsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBUWpDLFFBQVEsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUV4QjtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxJQUFJLE9BQU8sQ0FFaEI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLElBQUksTUFBTSxD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
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/curves/bn254/field.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
5
5
  import { randomBytes } from '../../crypto/random/index.js';
6
6
  import { hexSchemaFor } from '../../schemas/utils.js';
7
7
  import { BufferReader } from '../../serialize/buffer_reader.js';
8
- import { TypeRegistry } from '../../serialize/type_registry.js';
9
8
  /**
10
9
  * Base field class.
11
10
  * Uses bigint as the internal representation.
@@ -41,10 +40,11 @@ import { TypeRegistry } from '../../serialize/type_registry.js';
41
40
  throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
42
41
  }
43
42
  }
44
- /**
45
- * Converts the bigint to a Buffer.
46
- */ toBuffer() {
47
- return toBufferBE(this.asBigInt, 32);
43
+ toBuffer(sink) {
44
+ if (!sink) {
45
+ return toBufferBE(this.asBigInt, BaseField.SIZE_IN_BYTES);
46
+ }
47
+ sink.writeField(this.asBigInt);
48
48
  }
49
49
  toString() {
50
50
  return `0x${this.asBigInt.toString(16).padStart(64, '0')}`;
@@ -81,12 +81,15 @@ import { TypeRegistry } from '../../serialize/type_registry.js';
81
81
  return this.asBigInt < rhs.asBigInt;
82
82
  }
83
83
  cmp(rhs) {
84
- const rhsBigInt = rhs.asBigInt;
85
- return this.asBigInt === rhsBigInt ? 0 : this.asBigInt < rhsBigInt ? -1 : 1;
84
+ return BaseField.cmpAsBigInt(this.asBigInt, rhs.asBigInt);
86
85
  }
87
86
  static cmp(lhs, rhs) {
88
87
  return lhs.cmp(rhs);
89
88
  }
89
+ // Actual bigint comparison. Arguments must have been validated previously.
90
+ static cmpAsBigInt(lhs, rhs) {
91
+ return lhs === rhs ? 0 : lhs < rhs ? -1 : 1;
92
+ }
90
93
  isZero() {
91
94
  return this.asBigInt === 0n;
92
95
  }
@@ -130,15 +133,31 @@ import { TypeRegistry } from '../../serialize/type_registry.js';
130
133
  const buffer = Buffer.from(checked.length % 2 === 1 ? '0' + checked : checked, 'hex');
131
134
  return new f(toBigIntBE(buffer));
132
135
  }
136
+ /**
137
+ * Abstract unbranded base class for BN254 scalar field elements.
138
+ * Extend this instead of Fr when defining a branded subtype (e.g. BlockHash)
139
+ * to avoid inheriting Fr's `_branding`.
140
+ */ export class BaseFr extends BaseField {
141
+ static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
142
+ constructor(value){
143
+ super(value);
144
+ }
145
+ modulus() {
146
+ return BaseFr.MODULUS;
147
+ }
148
+ toJSON() {
149
+ return this.toString();
150
+ }
151
+ }
133
152
  _computedKey = inspect.custom;
134
153
  /**
135
154
  * Fr field class.
136
155
  * @dev This class is used to represent elements of BN254 scalar field or elements in the base field of Grumpkin.
137
156
  * (Grumpkin's scalar field corresponds to BN254's base field and vice versa.)
138
- */ export class Fr extends BaseField {
157
+ */ export class Fr extends BaseFr {
158
+ static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
139
159
  static ZERO = new Fr(0n);
140
160
  static ONE = new Fr(1n);
141
- static MODULUS = 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n;
142
161
  static MAX_FIELD_VALUE = new Fr(this.MODULUS - 1n);
143
162
  constructor(value){
144
163
  super(value);
@@ -146,9 +165,6 @@ _computedKey = inspect.custom;
146
165
  [_computedKey]() {
147
166
  return `Fr<${this.toString()}>`;
148
167
  }
149
- modulus() {
150
- return Fr.MODULUS;
151
- }
152
168
  static random() {
153
169
  return random(Fr);
154
170
  }
@@ -232,9 +248,6 @@ _computedKey = inspect.custom;
232
248
  }
233
249
  return Fr.fromBuffer(Buffer.from(response.value));
234
250
  }
235
- toJSON() {
236
- return this.toString();
237
- }
238
251
  /**
239
252
  * Creates an Fr instance from a plain object without Zod validation.
240
253
  * This method is optimized for performance and skips validation, making it suitable
@@ -253,8 +266,6 @@ _computedKey = inspect.custom;
253
266
  return hexSchemaFor(Fr);
254
267
  }
255
268
  }
256
- // For deserializing JSON.
257
- TypeRegistry.register('Fr', Fr);
258
269
  _computedKey1 = inspect.custom;
259
270
  /**
260
271
  * Fq field class.
@@ -352,8 +363,6 @@ _computedKey1 = inspect.custom;
352
363
  return hexSchemaFor(Fq);
353
364
  }
354
365
  }
355
- // For deserializing JSON.
356
- TypeRegistry.register('Fq', Fq);
357
366
  // Beware: Performance bottleneck below
358
367
  /**
359
368
  * Find the modular inverse of a given element, for BN254 Fr.