@aztec/foundation 0.0.1-commit.f504929 → 0.0.1-commit.f5a9928

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 (288) 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 +72 -71
  52. package/dest/config/network_config.d.ts +13 -45
  53. package/dest/config/network_config.d.ts.map +1 -1
  54. package/dest/config/network_config.js +3 -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 +1 -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/poseidon/index.d.ts +1 -1
  67. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  68. package/dest/crypto/poseidon/index.js +40 -33
  69. package/dest/crypto/schnorr/index.d.ts +8 -7
  70. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  71. package/dest/crypto/schnorr/index.js +6 -6
  72. package/dest/crypto/schnorr/signature.d.ts +9 -29
  73. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  74. package/dest/crypto/schnorr/signature.js +20 -36
  75. package/dest/curves/bls12/field.d.ts +3 -3
  76. package/dest/curves/bls12/field.d.ts.map +1 -1
  77. package/dest/curves/bls12/field.js +0 -5
  78. package/dest/curves/bls12/point.d.ts +2 -2
  79. package/dest/curves/bls12/point.d.ts.map +1 -1
  80. package/dest/curves/bn254/field.d.ts +23 -19
  81. package/dest/curves/bn254/field.d.ts.map +1 -1
  82. package/dest/curves/bn254/field.js +23 -17
  83. package/dest/curves/grumpkin/point.d.ts +14 -28
  84. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  85. package/dest/curves/grumpkin/point.js +29 -43
  86. package/dest/eth-address/index.d.ts +2 -2
  87. package/dest/eth-address/index.d.ts.map +1 -1
  88. package/dest/eth-address/index.js +0 -3
  89. package/dest/eth-signature/eth_signature.d.ts +2 -2
  90. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  91. package/dest/fifo/fifo_frame_reader.d.ts +41 -0
  92. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
  93. package/dest/fifo/fifo_frame_reader.js +74 -0
  94. package/dest/fifo/index.d.ts +2 -0
  95. package/dest/fifo/index.d.ts.map +1 -0
  96. package/dest/fifo/index.js +1 -0
  97. package/dest/fifo_set/fifo_set.d.ts +15 -0
  98. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  99. package/dest/fifo_set/fifo_set.js +39 -0
  100. package/dest/fifo_set/index.d.ts +2 -0
  101. package/dest/fifo_set/index.d.ts.map +1 -0
  102. package/dest/fifo_set/index.js +1 -0
  103. package/dest/iterable/first.d.ts +8 -0
  104. package/dest/iterable/first.d.ts.map +1 -0
  105. package/dest/iterable/first.js +11 -0
  106. package/dest/iterable/index.d.ts +2 -1
  107. package/dest/iterable/index.d.ts.map +1 -1
  108. package/dest/iterable/index.js +1 -0
  109. package/dest/json-rpc/client/fetch.d.ts +8 -3
  110. package/dest/json-rpc/client/fetch.d.ts.map +1 -1
  111. package/dest/json-rpc/client/fetch.js +11 -7
  112. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  113. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  114. package/dest/json-rpc/client/safe_json_rpc_client.js +2 -2
  115. package/dest/json-rpc/client/undici.d.ts +14 -3
  116. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  117. package/dest/json-rpc/client/undici.js +47 -14
  118. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  119. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  120. package/dest/json-rpc/fixtures/test_state.js +57 -17
  121. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +49 -11
  122. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  123. package/dest/json-rpc/server/safe_json_rpc_server.js +159 -40
  124. package/dest/log/aws-logger-config.d.ts +8 -0
  125. package/dest/log/aws-logger-config.d.ts.map +1 -0
  126. package/dest/log/aws-logger-config.js +55 -0
  127. package/dest/log/pino-logger.d.ts +1 -1
  128. package/dest/log/pino-logger.d.ts.map +1 -1
  129. package/dest/log/pino-logger.js +29 -8
  130. package/dest/noir/noir_package_config.d.ts +19 -104
  131. package/dest/noir/noir_package_config.d.ts.map +1 -1
  132. package/dest/noir/noir_package_config.js +1 -1
  133. package/dest/promise/running-promise.d.ts +8 -2
  134. package/dest/promise/running-promise.d.ts.map +1 -1
  135. package/dest/promise/running-promise.js +17 -5
  136. package/dest/promise/utils.d.ts +14 -1
  137. package/dest/promise/utils.d.ts.map +1 -1
  138. package/dest/promise/utils.js +20 -0
  139. package/dest/queue/batch_queue.d.ts +1 -1
  140. package/dest/queue/batch_queue.d.ts.map +1 -1
  141. package/dest/queue/batch_queue.js +1 -0
  142. package/dest/retry/index.d.ts +31 -3
  143. package/dest/retry/index.d.ts.map +1 -1
  144. package/dest/retry/index.js +44 -2
  145. package/dest/schemas/api.d.ts +12 -10
  146. package/dest/schemas/api.d.ts.map +1 -1
  147. package/dest/schemas/api.js +7 -1
  148. package/dest/schemas/parse.d.ts +4 -4
  149. package/dest/schemas/parse.d.ts.map +1 -1
  150. package/dest/schemas/parse.js +6 -5
  151. package/dest/schemas/schemas.d.ts +15 -15
  152. package/dest/schemas/types.d.ts +3 -3
  153. package/dest/schemas/types.d.ts.map +1 -1
  154. package/dest/schemas/utils.d.ts +7 -11
  155. package/dest/schemas/utils.d.ts.map +1 -1
  156. package/dest/schemas/utils.js +2 -18
  157. package/dest/serialize/buffer_reader.d.ts +1 -1
  158. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  159. package/dest/serialize/buffer_reader.js +5 -0
  160. package/dest/serialize/buffer_sink.d.ts +134 -0
  161. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  162. package/dest/serialize/buffer_sink.js +297 -0
  163. package/dest/serialize/index.d.ts +2 -1
  164. package/dest/serialize/index.d.ts.map +1 -1
  165. package/dest/serialize/index.js +1 -0
  166. package/dest/serialize/serialize.d.ts +1 -32
  167. package/dest/serialize/serialize.d.ts.map +1 -1
  168. package/dest/serialize/serialize.js +0 -21
  169. package/dest/string/index.js +1 -1
  170. package/dest/testing/files/index.d.ts +2 -3
  171. package/dest/testing/files/index.d.ts.map +1 -1
  172. package/dest/testing/files/index.js +1 -2
  173. package/dest/timer/index.d.ts +2 -2
  174. package/dest/timer/index.d.ts.map +1 -1
  175. package/dest/timer/index.js +1 -1
  176. package/dest/timer/timeout.d.ts +3 -1
  177. package/dest/timer/timeout.d.ts.map +1 -1
  178. package/dest/timer/timeout.js +26 -0
  179. package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
  180. package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
  181. package/dest/transport/index.d.ts +1 -2
  182. package/dest/transport/index.d.ts.map +1 -1
  183. package/dest/transport/index.js +0 -1
  184. package/dest/trees/balanced_merkle_tree_root.d.ts +2 -3
  185. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -1
  186. package/dest/trees/balanced_merkle_tree_root.js +2 -3
  187. package/dest/trees/hasher.d.ts +3 -2
  188. package/dest/trees/hasher.d.ts.map +1 -1
  189. package/dest/trees/hasher.js +5 -5
  190. package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
  191. package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
  192. package/dest/trees/indexed_merkle_tree_calculator.js +5 -1
  193. package/dest/trees/membership_witness.d.ts +2 -6
  194. package/dest/trees/membership_witness.d.ts.map +1 -1
  195. package/dest/trees/membership_witness.js +0 -9
  196. package/dest/trees/merkle_tree_calculator.d.ts +4 -2
  197. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  198. package/dest/trees/merkle_tree_calculator.js +1 -5
  199. package/dest/trees/sibling_path.d.ts +13 -14
  200. package/dest/trees/sibling_path.d.ts.map +1 -1
  201. package/dest/trees/sibling_path.js +23 -28
  202. package/dest/trees/unbalanced_merkle_tree_root.d.ts +2 -3
  203. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -1
  204. package/dest/trees/unbalanced_merkle_tree_root.js +2 -3
  205. package/dest/types/index.d.ts +23 -1
  206. package/dest/types/index.d.ts.map +1 -1
  207. package/dest/types/index.js +15 -0
  208. package/package.json +6 -4
  209. package/src/bigint-buffer/index.ts +6 -1
  210. package/src/branded-types/block_number.ts +20 -2
  211. package/src/branded-types/buffer32_hash.ts +38 -0
  212. package/src/branded-types/checkpoint_number.ts +16 -1
  213. package/src/branded-types/epoch.ts +1 -1
  214. package/src/branded-types/index.ts +1 -0
  215. package/src/branded-types/index_within_checkpoint.ts +1 -1
  216. package/src/branded-types/slot.ts +6 -1
  217. package/src/buffer/buffer16.ts +3 -0
  218. package/src/buffer/buffer32.ts +39 -68
  219. package/src/buffer/index.ts +1 -0
  220. package/src/buffer/utils.ts +8 -0
  221. package/src/collection/array.ts +34 -0
  222. package/src/collection/index.ts +2 -0
  223. package/src/collection/lru_map.ts +143 -0
  224. package/src/collection/lru_set.ts +115 -0
  225. package/src/committable/committable.ts +1 -1
  226. package/src/config/env_var.ts +65 -25
  227. package/src/config/index.ts +143 -122
  228. package/src/config/network_config.ts +2 -0
  229. package/src/config/network_name.ts +2 -5
  230. package/src/config/secret_value.ts +1 -1
  231. package/src/crypto/aes128/index.ts +11 -2
  232. package/src/crypto/bls/bn254_keystore.ts +33 -43
  233. package/src/crypto/poseidon/index.ts +42 -34
  234. package/src/crypto/schnorr/index.ts +9 -8
  235. package/src/crypto/schnorr/signature.ts +17 -46
  236. package/src/curves/bls12/field.ts +0 -7
  237. package/src/curves/bn254/field.ts +35 -34
  238. package/src/curves/grumpkin/point.ts +23 -40
  239. package/src/eth-address/index.ts +0 -4
  240. package/src/fifo/fifo_frame_reader.ts +98 -0
  241. package/src/fifo/index.ts +1 -0
  242. package/src/fifo_set/fifo_set.ts +52 -0
  243. package/src/fifo_set/index.ts +1 -0
  244. package/src/iterable/first.ts +14 -0
  245. package/src/iterable/index.ts +1 -0
  246. package/src/json-rpc/client/fetch.ts +19 -5
  247. package/src/json-rpc/client/safe_json_rpc_client.ts +2 -2
  248. package/src/json-rpc/client/undici.ts +54 -12
  249. package/src/json-rpc/fixtures/test_state.ts +10 -10
  250. package/src/json-rpc/server/safe_json_rpc_server.ts +204 -47
  251. package/src/log/aws-logger-config.ts +32 -0
  252. package/src/log/pino-logger.ts +33 -6
  253. package/src/noir/noir_package_config.ts +32 -20
  254. package/src/promise/running-promise.ts +20 -7
  255. package/src/promise/utils.ts +31 -0
  256. package/src/queue/batch_queue.ts +1 -0
  257. package/src/retry/index.ts +66 -4
  258. package/src/schemas/api.ts +25 -25
  259. package/src/schemas/parse.ts +9 -6
  260. package/src/schemas/schemas.ts +4 -4
  261. package/src/schemas/types.ts +2 -2
  262. package/src/schemas/utils.ts +4 -38
  263. package/src/serialize/buffer_reader.ts +5 -0
  264. package/src/serialize/buffer_sink.ts +350 -0
  265. package/src/serialize/index.ts +1 -0
  266. package/src/serialize/serialize.ts +0 -50
  267. package/src/string/index.ts +1 -1
  268. package/src/testing/files/index.ts +1 -2
  269. package/src/timer/index.ts +1 -1
  270. package/src/timer/timeout.ts +31 -0
  271. package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
  272. package/src/transport/index.ts +0 -1
  273. package/src/trees/balanced_merkle_tree_root.ts +2 -5
  274. package/src/trees/hasher.ts +6 -3
  275. package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
  276. package/src/trees/membership_witness.ts +0 -8
  277. package/src/trees/merkle_tree_calculator.ts +4 -10
  278. package/src/trees/sibling_path.ts +24 -30
  279. package/src/trees/unbalanced_merkle_tree_root.ts +2 -5
  280. package/src/types/index.ts +47 -0
  281. package/dest/crypto/serialize.d.ts +0 -51
  282. package/dest/crypto/serialize.d.ts.map +0 -1
  283. package/dest/crypto/serialize.js +0 -68
  284. package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
  285. package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
  286. package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
  287. package/src/crypto/serialize.ts +0 -85
  288. package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
@@ -1,5 +1,4 @@
1
1
  import { toBigIntBE } from '../../bigint-buffer/index.js';
2
- import { poseidon2Hash } from '../../crypto/poseidon/index.js';
3
2
  import { randomBoolean } from '../../crypto/random/index.js';
4
3
  import { hexSchemaFor } from '../../schemas/utils.js';
5
4
  import { BufferReader, FieldReader, serializeToBuffer } from '../../serialize/index.js';
@@ -13,23 +12,22 @@ import { Fr } from '../bn254/field.js';
13
12
  */ export class Point {
14
13
  x;
15
14
  y;
16
- isInfinite;
17
- static ZERO = new Point(Fr.ZERO, Fr.ZERO, false);
15
+ static INFINITY = new Point(Fr.ZERO, Fr.ZERO);
18
16
  static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * 2;
19
17
  static COMPRESSED_SIZE_IN_BYTES = Fr.SIZE_IN_BYTES;
20
18
  /** Used to differentiate this class from AztecAddress */ kind;
19
+ /** Whether the point is at infinity */ isInfinite;
21
20
  constructor(/**
22
21
  * The point's x coordinate
23
22
  */ x, /**
24
23
  * The point's y coordinate
25
- */ y, /**
26
- * Whether the point is at infinity
27
- */ isInfinite){
24
+ */ y){
28
25
  this.x = x;
29
26
  this.y = y;
30
- this.isInfinite = isInfinite;
31
27
  this.kind = 'point';
32
- // TODO(#7386): check if on curve
28
+ // TODO(#7386): check if on curve
29
+ // NOTE: now there is no isInfinite in the struct, empty == inf, so an empty class would pass an on-curve check. This may be fine depending on the usage.
30
+ this.isInfinite = x.isZero() && y.isZero();
33
31
  }
34
32
  toJSON() {
35
33
  return this.toString();
@@ -52,10 +50,10 @@ import { Fr } from '../bn254/field.js';
52
50
  if (obj instanceof Buffer || Buffer.isBuffer(obj)) {
53
51
  return Point.fromBuffer(obj);
54
52
  }
55
- return new Point(Fr.fromPlainObject(obj.x), Fr.fromPlainObject(obj.y), obj.isInfinite ?? false);
53
+ return new this(Fr.fromPlainObject(obj.x), Fr.fromPlainObject(obj.y));
56
54
  }
57
55
  /**
58
- * Generate a random Point instance.
56
+ * Generate a random Point instance that is on the curve.
59
57
  *
60
58
  * @returns A randomly generated Point instance.
61
59
  */ static async random() {
@@ -78,7 +76,7 @@ import { Fr } from '../bn254/field.js';
78
76
  * @returns A Point instance.
79
77
  */ static fromBuffer(buffer) {
80
78
  const reader = BufferReader.asReader(buffer);
81
- return new this(Fr.fromBuffer(reader), Fr.fromBuffer(reader), false);
79
+ return new this(Fr.fromBuffer(reader), Fr.fromBuffer(reader));
82
80
  }
83
81
  /**
84
82
  * Create a Point instance from a compressed buffer.
@@ -109,13 +107,16 @@ import { Fr } from '../bn254/field.js';
109
107
  */ toFields() {
110
108
  return [
111
109
  this.x,
112
- this.y,
113
- new Fr(this.isInfinite)
110
+ this.y
114
111
  ];
115
112
  }
116
113
  static fromFields(fields) {
117
114
  const reader = FieldReader.asReader(fields);
118
- return new this(reader.readField(), reader.readField(), reader.readBoolean());
115
+ const [x, y] = [
116
+ reader.readField(),
117
+ reader.readField()
118
+ ];
119
+ return new this(x, y);
119
120
  }
120
121
  /**
121
122
  * Uses the x coordinate and isPositive flag (+/-) to reconstruct the point.
@@ -135,10 +136,11 @@ import { Fr } from '../bn254/field.js';
135
136
  // Choose the positive or negative root based on isPositive
136
137
  const finalY = sign ? new Fr(yPositiveBigInt) : new Fr(yNegativeBigInt);
137
138
  // Create and return the new Point
138
- return new this(x, finalY, false);
139
+ return new this(x, finalY);
139
140
  }
140
141
  /**
141
- * @returns
142
+ * @param x - The x coordinate of the point
143
+ * @returns y^2 such that y^2 = x^3 - 17
142
144
  */ static YFromX(x) {
143
145
  // Calculate y^2 = x^3 - 17 (i.e. the Grumpkin curve equation)
144
146
  const ySquared = x.square().mul(x).sub(new Fr(17));
@@ -162,23 +164,14 @@ import { Fr } from '../bn254/field.js';
162
164
  */ toBigInts() {
163
165
  return {
164
166
  x: this.x.toBigInt(),
165
- y: this.y.toBigInt(),
166
- isInfinite: this.isInfinite ? 1n : 0n
167
+ y: this.y.toBigInt()
167
168
  };
168
169
  }
169
170
  /**
170
171
  * Converts the Point instance to a Buffer representation of the coordinates.
171
172
  * @returns A Buffer representation of the Point instance.
172
- * @dev Note that toBuffer does not include the isInfinite flag and other serialization methods do (e.g. toFields).
173
- * This is because currently when we work with point as bytes we don't want to populate the extra bytes for
174
- * isInfinite flag because:
175
- * 1. Our Grumpkin BB API currently does not handle point at infinity,
176
- * 2. we use toBuffer when serializing notes and events and there we only work with public keys and point at infinity
177
- * is not considered a valid public key and the extra byte would raise DA cost.
173
+ * @dev Note that toBuffer does not include the isInfinite flag. The point at infinity is serialized as (0, 0).
178
174
  */ toBuffer() {
179
- if (this.isInfinite) {
180
- throw new Error('Cannot serialize infinite point with isInfinite flag');
181
- }
182
175
  const buf = serializeToBuffer([
183
176
  this.x,
184
177
  this.y
@@ -224,13 +217,12 @@ import { Fr } from '../bn254/field.js';
224
217
  return `${str.slice(0, 10)}...${str.slice(-4)}`;
225
218
  }
226
219
  toNoirStruct() {
227
- /* eslint-disable camelcase */ return {
220
+ return {
228
221
  x: this.x,
229
- y: this.y,
230
- is_infinite: this.isInfinite
222
+ y: this.y
231
223
  };
232
- /* eslint-enable camelcase */ }
233
- // Used for IvpkM, OvpkM, NpkM and TpkM. TODO(#8124): Consider removing this method.
224
+ }
225
+ // Used for IvpkM. TODO(#8124): Consider removing this method.
234
226
  toWrappedNoirStruct() {
235
227
  return {
236
228
  inner: this.toNoirStruct()
@@ -248,18 +240,12 @@ import { Fr } from '../bn254/field.js';
248
240
  isZero() {
249
241
  return this.x.isZero() && this.y.isZero();
250
242
  }
251
- hash() {
252
- return poseidon2Hash(this.toFields());
253
- }
254
243
  /**
255
- * Check if this is point at infinity.
256
- * Check this is consistent with how bb is encoding the point at infinity
257
- */ get inf() {
258
- return this.isInfinite;
259
- }
260
- isOnGrumpkin() {
261
- // TODO: Check this against how bb handles curve check and infinity point check
262
- if (this.inf) {
244
+ * @param x - The x coordinate of the point
245
+ * @param y - The y coordinate of the point
246
+ * @returns Whether the point exists on Grumpkin
247
+ */ isOnCurve() {
248
+ if (this.isInfinite) {
263
249
  return true;
264
250
  }
265
251
  // The Grumpkin equation is y^2 = x^3 - 17. We could use `YFromX` and then compare to `this.y`, but this would
@@ -137,7 +137,7 @@ export declare class EthAddress {
137
137
  /** Converts a number into an address. Useful for testing. */
138
138
  static fromNumber(num: bigint | number): EthAddress;
139
139
  toJSON(): `0x${string}`;
140
- static get schema(): import("zod").ZodType<EthAddress, any, string>;
140
+ static get schema(): import("zod").ZodType<EthAddress, string, import("zod/v4/core").$ZodTypeInternals<EthAddress, string>>;
141
141
  static areEqual(a: EthAddress | string, b: EthAddress | string): boolean;
142
142
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGgtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSWxFOzs7OztHQUtHO0FBQ0gscUJBQWEsVUFBVTtJQU1ULE9BQU8sQ0FBQyxNQUFNO0lBTDFCLGdEQUFnRDtJQUNoRCxPQUFjLGFBQWEsU0FBTTtJQUNqQywwRUFBMEU7SUFDMUUsT0FBYyxJQUFJLGFBQTBEO0lBRTVFLFlBQW9CLE1BQU0sRUFBRSxNQUFNLEVBSWpDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLGNBS3ZDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQVFsRDtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsTUFBTSxlQUVuQjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sV0FVdEM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sWUFFWjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLFdBY2pEO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBYyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBa0I5RDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxXQUU1QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsa0JBRWQ7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FFZjtJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixrQkFFdEI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLDRCQUVkO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSx3QkFJaEI7SUFFRDs7OztPQUlHO0lBQ0ksT0FBTyxPQUViO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBSWxEO0lBRUQsTUFBTSxrQkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLG1EQUdoQjtJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLFdBSTdEO0NBQ0YifQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGgtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xFOzs7OztHQUtHO0FBQ0gscUJBQWEsVUFBVTtJQU1ULE9BQU8sQ0FBQyxNQUFNO0lBTDFCLGdEQUFnRDtJQUNoRCxPQUFjLGFBQWEsU0FBTTtJQUNqQywwRUFBMEU7SUFDMUUsT0FBYyxJQUFJLGFBQTBEO0lBRTVFLFlBQW9CLE1BQU0sRUFBRSxNQUFNLEVBSWpDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLGNBS3ZDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQVFsRDtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsTUFBTSxlQUVuQjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sV0FVdEM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sWUFFWjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLFdBY2pEO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBYyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBa0I5RDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxXQUU1QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsa0JBRWQ7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FFZjtJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixrQkFFdEI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLDRCQUVkO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSx3QkFJaEI7SUFFRDs7OztPQUlHO0lBQ0ksT0FBTyxPQUViO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBSWxEO0lBRUQsTUFBTSxrQkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLDJHQUdoQjtJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLFdBSTdEO0NBQ0YifQ==
@@ -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,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
+ {"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;AAGlE;;;;;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,2GAGhB;IAED,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,WAI7D;CACF"}
@@ -5,7 +5,6 @@ import { randomBytes } from '../crypto/random/index.js';
5
5
  import { Fr } from '../curves/bn254/index.js';
6
6
  import { hexSchemaFor } from '../schemas/utils.js';
7
7
  import { BufferReader, FieldReader } from '../serialize/index.js';
8
- import { TypeRegistry } from '../serialize/type_registry.js';
9
8
  import { bufferToHex } from '../string/index.js';
10
9
  _computedKey = inspect.custom;
11
10
  /**
@@ -223,5 +222,3 @@ _computedKey = inspect.custom;
223
222
  return addrA.equals(addrB);
224
223
  }
225
224
  }
226
- // For deserializing JSON.
227
- TypeRegistry.register('EthAddress', EthAddress);
@@ -60,6 +60,6 @@ export declare class Signature {
60
60
  */
61
61
  toViemTransactionSignature(): ViemTransactionSignature;
62
62
  toJSON(): `0x${string}`;
63
- static get schema(): z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, `0x${string}`, string>, `0x${string}`, string>, Signature, string>;
63
+ static get schema(): z.ZodPipe<z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>, z.ZodTransform<Signature, `0x${string}`>>;
64
64
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBS3hCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBT2xCLG1DQUFtQzthQUNuQixDQUFDLEVBQUUsUUFBUTtJQUMzQixtQ0FBbUM7YUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO2FBQ25CLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsaUhBQWlIO0lBQ2pILE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUt6QjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUVoQztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FRaEI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRDs7T0FFRztJQUNILGVBQWUsSUFBSSxhQUFhLENBTS9CO0lBRUQ7O09BRUc7SUFDSCwwQkFBMEIsSUFBSSx3QkFBd0IsQ0FTckQ7SUFFRCxNQUFNLGtCQUVMO0lBRUQsTUFBTSxLQUFLLE1BQU0sMkhBTWhCO0NBQ0YifQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBS3hCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBT2xCLG1DQUFtQzthQUNuQixDQUFDLEVBQUUsUUFBUTtJQUMzQixtQ0FBbUM7YUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO2FBQ25CLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsaUhBQWlIO0lBQ2pILE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUt6QjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUVoQztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FRaEI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRDs7T0FFRztJQUNILGVBQWUsSUFBSSxhQUFhLENBTS9CO0lBRUQ7O09BRUc7SUFDSCwwQkFBMEIsSUFBSSx3QkFBd0IsQ0FTckQ7SUFFRCxNQUFNLGtCQUVMO0lBRUQsTUFBTSxLQUFLLE1BQU0seUpBTWhCO0NBQ0YifQ==
@@ -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;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;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,iHAAiH;IACjH,MAAM,CAAC,MAAM,IAAI,SAAS,CAKzB;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"}
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;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;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,iHAAiH;IACjH,MAAM,CAAC,MAAM,IAAI,SAAS,CAKzB;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,yJAMhB;CACF"}
@@ -0,0 +1,41 @@
1
+ import EventEmitter from 'node:events';
2
+ import type { Readable } from 'node:stream';
3
+ /**
4
+ * Events emitted by FifoFrameReader.
5
+ *
6
+ * - `frame`: A complete frame payload (without the 4-byte length header).
7
+ * - `error`: An unrecoverable error (invalid frame length, stream error).
8
+ * - `end`: The underlying stream has ended.
9
+ */
10
+ export interface FifoFrameReaderEvents {
11
+ frame: [payload: Buffer];
12
+ error: [error: Error];
13
+ end: [];
14
+ }
15
+ /**
16
+ * Reads length-delimited frames from a readable stream (typically a named FIFO pipe).
17
+ *
18
+ * Wire format: `[4-byte big-endian payload length][payload bytes]`
19
+ *
20
+ * Emits a `frame` event for each complete frame with the raw payload buffer.
21
+ * Callers are responsible for deserializing the payload (e.g., via msgpack).
22
+ *
23
+ * On encountering an invalid payload length (0 or >maxPayloadSize), emits `error`
24
+ * and destroys the stream.
25
+ */
26
+ export declare class FifoFrameReader extends EventEmitter<FifoFrameReaderEvents> {
27
+ private readonly maxPayloadSize;
28
+ private stream;
29
+ private pendingBuf;
30
+ private running;
31
+ constructor(maxPayloadSize?: number);
32
+ /** Open a FIFO at the given path and start reading frames. */
33
+ start(fifoPath: string, highWaterMark?: number): void;
34
+ /** Start reading frames from an existing readable stream. */
35
+ startFromStream(stream: Readable): void;
36
+ /** Stop reading and destroy the underlying stream. */
37
+ stop(): void;
38
+ /** Parse complete frames out of the pending buffer. */
39
+ private drainFrames;
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlmb19mcmFtZV9yZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvL2ZpZm9fZnJhbWVfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxXQUFXLHFCQUFxQjtJQUNwQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekIsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLEdBQUcsRUFBRSxFQUFFLENBQUM7Q0FDVDtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxxQkFBYSxlQUFnQixTQUFRLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztJQUsxRCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFKM0MsT0FBTyxDQUFDLE1BQU0sQ0FBeUI7SUFDdkMsT0FBTyxDQUFDLFVBQVUsQ0FBMkI7SUFDN0MsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUV4QixZQUE2QixjQUFjLFNBQW1CLEVBRTdEO0lBRUQsOERBQThEO0lBQzlELEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsU0FBWSxHQUFHLElBQUksQ0FFdkQ7SUFFRCw2REFBNkQ7SUFDN0QsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQXVCdEM7SUFFRCxzREFBc0Q7SUFDdEQsSUFBSSxJQUFJLElBQUksQ0FNWDtJQUVELHVEQUF1RDtJQUN2RCxPQUFPLENBQUMsV0FBVztDQW1CcEIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fifo_frame_reader.d.ts","sourceRoot":"","sources":["../../src/fifo/fifo_frame_reader.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,GAAG,EAAE,EAAE,CAAC;CACT;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAK1D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJ3C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAAS;IAExB,YAA6B,cAAc,SAAmB,EAE7D;IAED,8DAA8D;IAC9D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,SAAY,GAAG,IAAI,CAEvD;IAED,6DAA6D;IAC7D,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAuBtC;IAED,sDAAsD;IACtD,IAAI,IAAI,IAAI,CAMX;IAED,uDAAuD;IACvD,OAAO,CAAC,WAAW;CAmBpB"}
@@ -0,0 +1,74 @@
1
+ import EventEmitter from 'node:events';
2
+ import * as fs from 'node:fs';
3
+ /**
4
+ * Reads length-delimited frames from a readable stream (typically a named FIFO pipe).
5
+ *
6
+ * Wire format: `[4-byte big-endian payload length][payload bytes]`
7
+ *
8
+ * Emits a `frame` event for each complete frame with the raw payload buffer.
9
+ * Callers are responsible for deserializing the payload (e.g., via msgpack).
10
+ *
11
+ * On encountering an invalid payload length (0 or >maxPayloadSize), emits `error`
12
+ * and destroys the stream.
13
+ */ export class FifoFrameReader extends EventEmitter {
14
+ maxPayloadSize;
15
+ stream;
16
+ pendingBuf;
17
+ running;
18
+ constructor(maxPayloadSize = 10 * 1024 * 1024){
19
+ super(), this.maxPayloadSize = maxPayloadSize, this.stream = null, this.pendingBuf = Buffer.alloc(0), this.running = false;
20
+ }
21
+ /** Open a FIFO at the given path and start reading frames. */ start(fifoPath, highWaterMark = 64 * 1024) {
22
+ this.startFromStream(fs.createReadStream(fifoPath, {
23
+ highWaterMark
24
+ }));
25
+ }
26
+ /** Start reading frames from an existing readable stream. */ startFromStream(stream) {
27
+ if (this.running) {
28
+ throw new Error('FifoFrameReader is already running');
29
+ }
30
+ this.running = true;
31
+ this.pendingBuf = Buffer.alloc(0);
32
+ this.stream = stream;
33
+ stream.on('data', (chunk)=>{
34
+ const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
35
+ this.pendingBuf = this.pendingBuf.length > 0 ? Buffer.concat([
36
+ this.pendingBuf,
37
+ buf
38
+ ]) : buf;
39
+ this.drainFrames();
40
+ });
41
+ stream.on('error', (err)=>{
42
+ if (this.running) {
43
+ this.emit('error', err);
44
+ }
45
+ });
46
+ stream.on('end', ()=>{
47
+ this.emit('end');
48
+ });
49
+ }
50
+ /** Stop reading and destroy the underlying stream. */ stop() {
51
+ this.running = false;
52
+ if (this.stream) {
53
+ this.stream.destroy();
54
+ this.stream = null;
55
+ }
56
+ }
57
+ /** Parse complete frames out of the pending buffer. */ drainFrames() {
58
+ while(this.pendingBuf.length >= 4){
59
+ const payloadLen = this.pendingBuf.readUInt32BE(0);
60
+ if (payloadLen === 0 || payloadLen > this.maxPayloadSize) {
61
+ this.emit('error', new Error(`Invalid payload length: ${payloadLen}`));
62
+ this.stop();
63
+ return;
64
+ }
65
+ const frameLen = 4 + payloadLen;
66
+ if (this.pendingBuf.length < frameLen) {
67
+ break; // Wait for more data
68
+ }
69
+ const payload = this.pendingBuf.subarray(4, frameLen);
70
+ this.pendingBuf = this.pendingBuf.subarray(frameLen);
71
+ this.emit('frame', Buffer.from(payload));
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,2 @@
1
+ export { FifoFrameReader } from './fifo_frame_reader.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fifo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ export { FifoFrameReader } from './fifo_frame_reader.js';
@@ -0,0 +1,15 @@
1
+ /** A Set capped to a fixed number of entries, evicting the oldest inserted value when full. */
2
+ export declare class FifoSet<T> extends Set<T> {
3
+ private _limit;
4
+ private constructor();
5
+ /** Creates a bounded set with a positive integer limit. */
6
+ static withLimit<T>(limit: number, values?: Iterable<T>): FifoSet<T>;
7
+ add(value: T): this;
8
+ /** Maximum number of entries retained by this set. */
9
+ get limit(): number;
10
+ /** Evicts oldest entries until the set is within its limit. */
11
+ compact(): void;
12
+ /** Adds a value only if it is absent, returning whether the set changed. */
13
+ addIfAbsent(value: T): boolean;
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlmb19zZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvX3NldC9maWZvX3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrRkFBK0Y7QUFDL0YscUJBQWEsT0FBTyxDQUFDLENBQUMsQ0FBRSxTQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsT0FBTyxDQUFDLE1BQU0sQ0FBcUI7SUFFbkMsT0FBTyxlQUVOO0lBRUQsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FVbkU7SUFFUSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBSTNCO0lBRUQsc0RBQXNEO0lBQ3RELElBQVcsS0FBSyxJQUFJLE1BQU0sQ0FFekI7SUFFRCwrREFBK0Q7SUFDeEQsT0FBTyxJQUFJLElBQUksQ0FRckI7SUFFRCw0RUFBNEU7SUFDckUsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsT0FBTyxDQU1wQztDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fifo_set.d.ts","sourceRoot":"","sources":["../../src/fifo_set/fifo_set.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,qBAAa,OAAO,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,eAEN;IAED,2DAA2D;IAC3D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAUnE;IAEQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAI3B;IAED,sDAAsD;IACtD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,+DAA+D;IACxD,OAAO,IAAI,IAAI,CAQrB;IAED,4EAA4E;IACrE,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAMpC;CACF"}
@@ -0,0 +1,39 @@
1
+ /** A Set capped to a fixed number of entries, evicting the oldest inserted value when full. */ export class FifoSet extends Set {
2
+ _limit;
3
+ constructor(values){
4
+ super(values);
5
+ }
6
+ /** Creates a bounded set with a positive integer limit. */ static withLimit(limit, values) {
7
+ if (!Number.isSafeInteger(limit) || limit <= 0) {
8
+ throw new TypeError(`FifoSet limit must be a positive safe integer: ${limit}`);
9
+ }
10
+ const set = new FifoSet(values);
11
+ set._limit = limit;
12
+ set.compact();
13
+ return set;
14
+ }
15
+ add(value) {
16
+ super.add(value);
17
+ this.compact();
18
+ return this;
19
+ }
20
+ /** Maximum number of entries retained by this set. */ get limit() {
21
+ return this._limit ?? Infinity;
22
+ }
23
+ /** Evicts oldest entries until the set is within its limit. */ compact() {
24
+ while(this.size > this.limit){
25
+ const head = this.values().next();
26
+ if (head.done) {
27
+ return;
28
+ }
29
+ this.delete(head.value);
30
+ }
31
+ }
32
+ /** Adds a value only if it is absent, returning whether the set changed. */ addIfAbsent(value) {
33
+ if (this.has(value)) {
34
+ return false;
35
+ }
36
+ this.add(value);
37
+ return true;
38
+ }
39
+ }
@@ -0,0 +1,2 @@
1
+ export * from './fifo_set.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvX3NldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fifo_set/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './fifo_set.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns the first entry of an iterable, or undefined if it yields none, closing the underlying
3
+ * iterator either way. Use this instead of calling `.next()` once and abandoning the iterator:
4
+ * an abandoned generator never runs its finally blocks, so any resource it holds is leaked — e.g.
5
+ * a kv-store iterator's LMDB cursor, where enough leaks deadlock the store.
6
+ */
7
+ export declare function first<T>(iterator: Iterable<T> | AsyncIterableIterator<T> | AsyncIterable<T> | IterableIterator<T>): Promise<T | undefined>;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pdGVyYWJsZS9maXJzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILHdCQUFzQixLQUFLLENBQUMsQ0FBQyxFQUMzQixRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FDeEYsT0FBTyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FLeEIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first.d.ts","sourceRoot":"","sources":["../../src/iterable/first.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GACxF,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAKxB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns the first entry of an iterable, or undefined if it yields none, closing the underlying
3
+ * iterator either way. Use this instead of calling `.next()` once and abandoning the iterator:
4
+ * an abandoned generator never runs its finally blocks, so any resource it holds is leaked — e.g.
5
+ * a kv-store iterator's LMDB cursor, where enough leaks deadlock the store.
6
+ */ export async function first(iterator) {
7
+ for await (const i of iterator){
8
+ return i;
9
+ }
10
+ return undefined;
11
+ }
@@ -3,6 +3,7 @@ export * from './filter.js';
3
3
  export * from './sort.js';
4
4
  export * from './take.js';
5
5
  export * from './all.js';
6
+ export * from './first.js';
6
7
  export * from './peek.js';
7
8
  export * from './toArray.js';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pdGVyYWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQyJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pdGVyYWJsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/iterable/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/iterable/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
@@ -3,5 +3,6 @@ export * from './filter.js';
3
3
  export * from './sort.js';
4
4
  export * from './take.js';
5
5
  export * from './all.js';
6
+ export * from './first.js';
6
7
  export * from './peek.js';
7
8
  export * from './toArray.js';
@@ -5,6 +5,9 @@ export type JsonRpcFetch = (host: string, body: any, extraHeaders?: Record<strin
5
5
  get: (header: string) => string | null | undefined;
6
6
  };
7
7
  }>;
8
+ export type JsonRpcFetchConfig = {
9
+ credentials?: RequestCredentials;
10
+ };
8
11
  /**
9
12
  * A normal fetch function that does not retry.
10
13
  * Alternatives are a fetch function with retries, or a mocked fetch.
@@ -13,9 +16,10 @@ export type JsonRpcFetch = (host: string, body: any, extraHeaders?: Record<strin
13
16
  * @param body - The RPC payload.
14
17
  * @param noRetry - Whether to throw a `NoRetryError` in case the response is a 5xx error and the body contains an error
15
18
  * message (see `retry` function for more details).
19
+ * @param config - Fetch transport configuration.
16
20
  * @returns The parsed JSON response, or throws an error.
17
21
  */
18
- export declare function defaultFetch(host: string, body: unknown, extraHeaders?: Record<string, string>, noRetry?: boolean): Promise<{
22
+ export declare function defaultFetch(host: string, body: unknown, extraHeaders?: Record<string, string>, noRetry?: boolean, config?: JsonRpcFetchConfig): Promise<{
19
23
  response: any;
20
24
  headers: {
21
25
  get: (header: string) => string | null | undefined;
@@ -26,7 +30,8 @@ export declare function defaultFetch(host: string, body: unknown, extraHeaders?:
26
30
  * @param retries - Sequence of intervals (in seconds) to retry.
27
31
  * @param noRetry - Whether to stop retries on server errors.
28
32
  * @param log - Optional logger for logging attempts.
33
+ * @param config - Fetch transport configuration.
29
34
  * @returns A fetch function.
30
35
  */
31
- export declare function makeFetch(retries: number[], defaultNoRetry: boolean, log?: Logger): typeof defaultFetch;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9jbGllbnQvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBTS9ELE1BQU0sTUFBTSxZQUFZLEdBQUcsQ0FDekIsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsR0FBRyxFQUNULFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQ3JDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sS0FDZCxPQUFPLENBQUM7SUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDO0lBQUMsT0FBTyxFQUFFO1FBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQTtLQUFFLENBQUE7Q0FBRSxDQUFDLENBQUM7QUFFakc7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQXNCLFlBQVksQ0FDaEMsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsT0FBTyxFQUNiLFlBQVksR0FBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBTSxFQUN6QyxPQUFPLFVBQVEsR0FDZCxPQUFPLENBQUM7SUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDO0lBQUMsT0FBTyxFQUFFO1FBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQTtLQUFFLENBQUE7Q0FBRSxDQUFDLENBa0M3RjtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sWUFBWSxDQVV2RyJ9
36
+ export declare function makeFetch(retries: number[], defaultNoRetry: boolean, log?: Logger, config?: JsonRpcFetchConfig): JsonRpcFetch;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9jbGllbnQvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBTS9ELE1BQU0sTUFBTSxZQUFZLEdBQUcsQ0FDekIsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsR0FBRyxFQUNULFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQ3JDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sS0FDZCxPQUFPLENBQUM7SUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDO0lBQUMsT0FBTyxFQUFFO1FBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQTtLQUFFLENBQUE7Q0FBRSxDQUFDLENBQUM7QUFFakcsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLFdBQVcsQ0FBQyxFQUFFLGtCQUFrQixDQUFDO0NBQ2xDLENBQUM7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQXNCLFlBQVksQ0FDaEMsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsT0FBTyxFQUNiLFlBQVksR0FBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBTSxFQUN6QyxPQUFPLFVBQVEsRUFDZixNQUFNLEdBQUUsa0JBQXVCLEdBQzlCLE9BQU8sQ0FBQztJQUFFLFFBQVEsRUFBRSxHQUFHLENBQUM7SUFBQyxPQUFPLEVBQUU7UUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFBO0tBQUUsQ0FBQTtDQUFFLENBQUMsQ0FvQzdGO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixTQUFTLENBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDakIsY0FBYyxFQUFFLE9BQU8sRUFDdkIsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUNaLE1BQU0sR0FBRSxrQkFBdUIsR0FDOUIsWUFBWSxDQVVkIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAM/D,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC;AAEjG;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACzC,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,CAkC7F;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,YAAY,CAUvG"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAM/D,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC;AAEjG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACzC,OAAO,UAAQ,EACf,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,CAoC7F;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,OAAO,EACvB,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,GAAE,kBAAuB,GAC9B,YAAY,CAUd"}
@@ -11,8 +11,9 @@ const log = createLogger('json-rpc:json_rpc_client');
11
11
  * @param body - The RPC payload.
12
12
  * @param noRetry - Whether to throw a `NoRetryError` in case the response is a 5xx error and the body contains an error
13
13
  * message (see `retry` function for more details).
14
+ * @param config - Fetch transport configuration.
14
15
  * @returns The parsed JSON response, or throws an error.
15
- */ export async function defaultFetch(host, body, extraHeaders = {}, noRetry = false) {
16
+ */ export async function defaultFetch(host, body, extraHeaders = {}, noRetry = false, config = {}) {
16
17
  log.debug(format(`JsonRpcClient.fetch`, host, '->', body));
17
18
  let resp;
18
19
  try {
@@ -22,23 +23,25 @@ const log = createLogger('json-rpc:json_rpc_client');
22
23
  headers: {
23
24
  'content-type': 'application/json',
24
25
  ...extraHeaders
25
- }
26
+ },
27
+ credentials: config.credentials
26
28
  });
27
29
  } catch (err) {
28
30
  const errorMessage = `Error fetching from host ${host}: ${inspect(err)}`;
29
31
  throw new Error(errorMessage);
30
32
  }
31
33
  let responseJson;
34
+ const responseText = await resp.text();
32
35
  try {
33
- responseJson = await resp.json();
36
+ responseJson = JSON.parse(responseText);
34
37
  } catch {
35
38
  if (!resp.ok) {
36
39
  throw new Error(resp.statusText);
37
40
  }
38
- throw new Error(`Failed to parse body as JSON: ${await resp.text()}`);
41
+ throw new Error(`Failed to parse body as JSON: ${responseText}`);
39
42
  }
40
43
  if (!resp.ok) {
41
- const errorMessage = `Error ${resp.status} from server ${host}: ${responseJson.error.message}`;
44
+ const errorMessage = `Error ${resp.status} from server ${host}: ${responseJson?.error?.message ?? JSON.stringify(responseJson)}`;
42
45
  if (noRetry || resp.status >= 400 && resp.status < 500) {
43
46
  throw new NoRetryError(errorMessage);
44
47
  } else {
@@ -55,9 +58,10 @@ const log = createLogger('json-rpc:json_rpc_client');
55
58
  * @param retries - Sequence of intervals (in seconds) to retry.
56
59
  * @param noRetry - Whether to stop retries on server errors.
57
60
  * @param log - Optional logger for logging attempts.
61
+ * @param config - Fetch transport configuration.
58
62
  * @returns A fetch function.
59
- */ export function makeFetch(retries, defaultNoRetry, log) {
63
+ */ export function makeFetch(retries, defaultNoRetry, log, config = {}) {
60
64
  return async (host, body, extraHeaders = {}, noRetry)=>{
61
- return await retry(()=>defaultFetch(host, body, extraHeaders, noRetry ?? defaultNoRetry), `JsonRpcClient request to ${host}`, makeBackoff(retries), log, false);
65
+ return await retry(()=>defaultFetch(host, body, extraHeaders, noRetry ?? defaultNoRetry, config), `JsonRpcClient request to ${host}`, makeBackoff(retries), log, false);
62
66
  };
63
67
  }
@@ -30,4 +30,4 @@ export declare function createSafeJsonRpcClient<T extends object>(host: string,
30
30
  export declare function batch<T extends readonly unknown[]>(values: T): Promise<{
31
31
  -readonly [P in keyof T]: Awaited<T[P]>;
32
32
  }>;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZV9qc29uX3JwY19jbGllbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9jbGllbnQvc2FmZV9qc29uX3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBa0IsS0FBSyxZQUFZLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFFMUYsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFnQixNQUFNLFlBQVksQ0FBQztBQWE3RCxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQztJQUNyQixHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVCLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDakIsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUNkLE9BQU8sRUFBRTtZQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUE7U0FBRSxDQUFDO0tBQ2pFLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3JCLENBQUM7QUE2QkY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQ3RELElBQUksRUFBRSxNQUFNLEVBQ1osTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDdkIsTUFBTSxHQUFFLHdCQUE2QixHQUNwQyxDQUFDLENBb0xIO0FBRUQ7O0dBRUc7QUFDSCx3QkFBc0IsS0FBSyxDQUFDLENBQUMsU0FBUyxTQUFTLE9BQU8sRUFBRSxFQUN0RCxNQUFNLEVBQUUsQ0FBQyxHQUNSLE9BQU8sQ0FBQztJQUFFLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLENBQUMsQ0F1QnREIn0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZV9qc29uX3JwY19jbGllbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9jbGllbnQvc2FmZV9qc29uX3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBa0IsS0FBSyxZQUFZLEVBQXdDLE1BQU0sc0JBQXNCLENBQUM7QUFFL0csT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFnQixNQUFNLFlBQVksQ0FBQztBQWE3RCxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQztJQUNyQixHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVCLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDakIsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUNkLE9BQU8sRUFBRTtZQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUE7U0FBRSxDQUFDO0tBQ2pFLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3JCLENBQUM7QUE2QkY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQ3RELElBQUksRUFBRSxNQUFNLEVBQ1osTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDdkIsTUFBTSxHQUFFLHdCQUE2QixHQUNwQyxDQUFDLENBb0xIO0FBRUQ7O0dBRUc7QUFDSCx3QkFBc0IsS0FBSyxDQUFDLENBQUMsU0FBUyxTQUFTLE9BQU8sRUFBRSxFQUN0RCxNQUFNLEVBQUUsQ0FBQyxHQUNSLE9BQU8sQ0FBQztJQUFFLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLENBQUMsQ0F1QnREIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,YAAY,CAAC;AAa7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,CAAC;KACjE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,wBAA6B,GACpC,CAAC,CAoLH;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAuBtD"}
1
+ {"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,EAAwC,MAAM,sBAAsB,CAAC;AAE/G,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,YAAY,CAAC;AAa7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,CAAC;KACjE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,wBAA6B,GACpC,CAAC,CAoLH;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAuBtD"}