@miradexio/client 0.1.1 → 0.1.3

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 (317) hide show
  1. package/README.md +57 -292
  2. package/dist/address/base58.d.ts.map +1 -1
  3. package/dist/address/base58.js +1 -2
  4. package/dist/address/base58.js.map +1 -1
  5. package/dist/address/bech32.d.ts +0 -8
  6. package/dist/address/bech32.d.ts.map +1 -1
  7. package/dist/address/bech32.js +3 -9
  8. package/dist/address/bech32.js.map +1 -1
  9. package/dist/address/evm.d.ts.map +1 -1
  10. package/dist/address/evm.js +1 -2
  11. package/dist/address/evm.js.map +1 -1
  12. package/dist/address/index.d.ts +0 -6
  13. package/dist/address/index.d.ts.map +1 -1
  14. package/dist/address/index.js +6 -9
  15. package/dist/address/index.js.map +1 -1
  16. package/dist/address/monero.d.ts +0 -10
  17. package/dist/address/monero.d.ts.map +1 -1
  18. package/dist/address/monero.js +4 -10
  19. package/dist/address/monero.js.map +1 -1
  20. package/dist/address/polkadot.d.ts +0 -5
  21. package/dist/address/polkadot.d.ts.map +1 -1
  22. package/dist/address/polkadot.js +2 -6
  23. package/dist/address/polkadot.js.map +1 -1
  24. package/dist/address/ton.d.ts +0 -6
  25. package/dist/address/ton.d.ts.map +1 -1
  26. package/dist/address/ton.js +3 -8
  27. package/dist/address/ton.js.map +1 -1
  28. package/dist/api/index.d.ts +0 -19
  29. package/dist/api/index.d.ts.map +1 -1
  30. package/dist/api/index.js +18 -37
  31. package/dist/api/index.js.map +1 -1
  32. package/dist/atomic-swap/drive.d.ts +0 -13
  33. package/dist/atomic-swap/drive.d.ts.map +1 -1
  34. package/dist/atomic-swap/drive.js +72 -114
  35. package/dist/atomic-swap/drive.js.map +1 -1
  36. package/dist/atomic-swap/extract.d.ts +0 -23
  37. package/dist/atomic-swap/extract.d.ts.map +1 -1
  38. package/dist/atomic-swap/extract.js +6 -16
  39. package/dist/atomic-swap/extract.js.map +1 -1
  40. package/dist/atomic-swap/index.d.ts +0 -7
  41. package/dist/atomic-swap/index.d.ts.map +1 -1
  42. package/dist/atomic-swap/index.js +1 -7
  43. package/dist/atomic-swap/index.js.map +1 -1
  44. package/dist/atomic-swap/monero-sweep/errors.d.ts.map +1 -1
  45. package/dist/atomic-swap/monero-sweep/errors.js +5 -20
  46. package/dist/atomic-swap/monero-sweep/errors.js.map +1 -1
  47. package/dist/atomic-swap/monero-sweep/index.d.ts +1 -13
  48. package/dist/atomic-swap/monero-sweep/index.d.ts.map +1 -1
  49. package/dist/atomic-swap/monero-sweep/index.js +36 -65
  50. package/dist/atomic-swap/monero-sweep/index.js.map +1 -1
  51. package/dist/atomic-swap/monero-sweep/ring-select.d.ts +0 -4
  52. package/dist/atomic-swap/monero-sweep/ring-select.d.ts.map +1 -1
  53. package/dist/atomic-swap/monero-sweep/ring-select.js +9 -21
  54. package/dist/atomic-swap/monero-sweep/ring-select.js.map +1 -1
  55. package/dist/atomic-swap/presign.d.ts +0 -63
  56. package/dist/atomic-swap/presign.d.ts.map +1 -1
  57. package/dist/atomic-swap/presign.js +30 -90
  58. package/dist/atomic-swap/presign.js.map +1 -1
  59. package/dist/atomic-swap/refund.d.ts +0 -18
  60. package/dist/atomic-swap/refund.d.ts.map +1 -1
  61. package/dist/atomic-swap/refund.js +16 -32
  62. package/dist/atomic-swap/refund.js.map +1 -1
  63. package/dist/atomic-swap/run.d.ts +0 -17
  64. package/dist/atomic-swap/run.d.ts.map +1 -1
  65. package/dist/atomic-swap/run.js +11 -25
  66. package/dist/atomic-swap/run.js.map +1 -1
  67. package/dist/atomic-swap/snapshot.d.ts +0 -30
  68. package/dist/atomic-swap/snapshot.d.ts.map +1 -1
  69. package/dist/atomic-swap/snapshot.js +8 -23
  70. package/dist/atomic-swap/snapshot.js.map +1 -1
  71. package/dist/atomic-swap/submit-encsig.d.ts +0 -7
  72. package/dist/atomic-swap/submit-encsig.d.ts.map +1 -1
  73. package/dist/atomic-swap/submit-encsig.js +8 -15
  74. package/dist/atomic-swap/submit-encsig.js.map +1 -1
  75. package/dist/atomic-swap/types.d.ts +2 -55
  76. package/dist/atomic-swap/types.d.ts.map +1 -1
  77. package/dist/atomic-swap/types.js +2 -3
  78. package/dist/atomic-swap/types.js.map +1 -1
  79. package/dist/blockchain/quorum-provider.d.ts +0 -15
  80. package/dist/blockchain/quorum-provider.d.ts.map +1 -1
  81. package/dist/blockchain/quorum-provider.js +7 -9
  82. package/dist/blockchain/quorum-provider.js.map +1 -1
  83. package/dist/cooperative-redeem.d.ts +5 -14
  84. package/dist/cooperative-redeem.d.ts.map +1 -1
  85. package/dist/cooperative-redeem.js +3 -20
  86. package/dist/cooperative-redeem.js.map +1 -1
  87. package/dist/engine/blockchain-querier.d.ts +0 -22
  88. package/dist/engine/blockchain-querier.d.ts.map +1 -1
  89. package/dist/engine/engine-state.d.ts +0 -8
  90. package/dist/engine/engine-state.d.ts.map +1 -1
  91. package/dist/engine/engine-state.js.map +1 -1
  92. package/dist/engine/flow-context.d.ts +0 -20
  93. package/dist/engine/flow-context.d.ts.map +1 -1
  94. package/dist/engine/flow-context.js +17 -41
  95. package/dist/engine/flow-context.js.map +1 -1
  96. package/dist/engine/flows/atomic-flow-state.d.ts +8 -1
  97. package/dist/engine/flows/atomic-flow-state.d.ts.map +1 -1
  98. package/dist/engine/flows/atomic-flow.d.ts +1 -28
  99. package/dist/engine/flows/atomic-flow.d.ts.map +1 -1
  100. package/dist/engine/flows/atomic-flow.js +98 -128
  101. package/dist/engine/flows/atomic-flow.js.map +1 -1
  102. package/dist/engine/flows/error-routing.d.ts +11 -0
  103. package/dist/engine/flows/error-routing.d.ts.map +1 -0
  104. package/dist/engine/flows/error-routing.js +17 -0
  105. package/dist/engine/flows/error-routing.js.map +1 -0
  106. package/dist/engine/flows/swap-flow.d.ts +0 -19
  107. package/dist/engine/flows/swap-flow.d.ts.map +1 -1
  108. package/dist/engine/flows/swap-flow.js +41 -83
  109. package/dist/engine/flows/swap-flow.js.map +1 -1
  110. package/dist/engine/miradex-engine.d.ts +1 -62
  111. package/dist/engine/miradex-engine.d.ts.map +1 -1
  112. package/dist/engine/miradex-engine.js +18 -50
  113. package/dist/engine/miradex-engine.js.map +1 -1
  114. package/dist/engine/pipeline.d.ts +0 -11
  115. package/dist/engine/pipeline.d.ts.map +1 -1
  116. package/dist/engine/pipeline.js +11 -21
  117. package/dist/engine/pipeline.js.map +1 -1
  118. package/dist/engine/platform.d.ts +0 -160
  119. package/dist/engine/platform.d.ts.map +1 -1
  120. package/dist/engine/platform.js +2 -0
  121. package/dist/engine/platform.js.map +1 -1
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +7 -11
  124. package/dist/index.js.map +1 -1
  125. package/dist/interfaces/blockchain.d.ts +1 -13
  126. package/dist/interfaces/blockchain.d.ts.map +1 -1
  127. package/dist/interfaces/blockchain.js +1 -0
  128. package/dist/interfaces/blockchain.js.map +1 -1
  129. package/dist/interfaces/logger.d.ts +0 -6
  130. package/dist/interfaces/logger.d.ts.map +1 -1
  131. package/dist/interfaces/logger.js.map +1 -1
  132. package/dist/lib/bitcoin/deposit-watcher.d.ts +0 -23
  133. package/dist/lib/bitcoin/deposit-watcher.d.ts.map +1 -1
  134. package/dist/lib/bitcoin/deposit-watcher.js +7 -31
  135. package/dist/lib/bitcoin/deposit-watcher.js.map +1 -1
  136. package/dist/lib/bitcoin/script-hash.d.ts.map +1 -1
  137. package/dist/lib/bitcoin/script-hash.js +2 -6
  138. package/dist/lib/bitcoin/script-hash.js.map +1 -1
  139. package/dist/lib/bitcoin/sweep.d.ts +0 -30
  140. package/dist/lib/bitcoin/sweep.d.ts.map +1 -1
  141. package/dist/lib/bitcoin/sweep.js +11 -40
  142. package/dist/lib/bitcoin/sweep.js.map +1 -1
  143. package/dist/lib/bitcoin/tx-verify.d.ts +0 -28
  144. package/dist/lib/bitcoin/tx-verify.d.ts.map +1 -1
  145. package/dist/lib/bitcoin/tx-verify.js +20 -61
  146. package/dist/lib/bitcoin/tx-verify.js.map +1 -1
  147. package/dist/lib/bitcoin/wallet.d.ts +0 -38
  148. package/dist/lib/bitcoin/wallet.d.ts.map +1 -1
  149. package/dist/lib/bitcoin/wallet.js +13 -38
  150. package/dist/lib/bitcoin/wallet.js.map +1 -1
  151. package/dist/lib/crypto/bytes.d.ts +0 -14
  152. package/dist/lib/crypto/bytes.d.ts.map +1 -1
  153. package/dist/lib/crypto/bytes.js +5 -14
  154. package/dist/lib/crypto/bytes.js.map +1 -1
  155. package/dist/lib/crypto/errors.d.ts +0 -5
  156. package/dist/lib/crypto/errors.d.ts.map +1 -1
  157. package/dist/lib/crypto/errors.js +2 -5
  158. package/dist/lib/crypto/errors.js.map +1 -1
  159. package/dist/lib/crypto/libp2p-identity.d.ts +0 -15
  160. package/dist/lib/crypto/libp2p-identity.d.ts.map +1 -1
  161. package/dist/lib/crypto/libp2p-identity.js +16 -28
  162. package/dist/lib/crypto/libp2p-identity.js.map +1 -1
  163. package/dist/lib/crypto/mnemonic.d.ts +0 -9
  164. package/dist/lib/crypto/mnemonic.d.ts.map +1 -1
  165. package/dist/lib/crypto/mnemonic.js +11 -27
  166. package/dist/lib/crypto/mnemonic.js.map +1 -1
  167. package/dist/lib/crypto/platform.d.ts +0 -6
  168. package/dist/lib/crypto/platform.d.ts.map +1 -1
  169. package/dist/lib/crypto/platform.js +2 -6
  170. package/dist/lib/crypto/platform.js.map +1 -1
  171. package/dist/lib/crypto/scalars.d.ts +0 -23
  172. package/dist/lib/crypto/scalars.d.ts.map +1 -1
  173. package/dist/lib/crypto/scalars.js +10 -23
  174. package/dist/lib/crypto/scalars.js.map +1 -1
  175. package/dist/lib/crypto/types.d.ts +0 -4
  176. package/dist/lib/crypto/types.d.ts.map +1 -1
  177. package/dist/lib/crypto/wasm.d.ts +0 -23
  178. package/dist/lib/crypto/wasm.d.ts.map +1 -1
  179. package/dist/lib/crypto/wasm.js +9 -16
  180. package/dist/lib/crypto/wasm.js.map +1 -1
  181. package/dist/lib/default-config.d.ts +1 -59
  182. package/dist/lib/default-config.d.ts.map +1 -1
  183. package/dist/lib/default-config.js +22 -61
  184. package/dist/lib/default-config.js.map +1 -1
  185. package/dist/lib/errors.d.ts +0 -54
  186. package/dist/lib/errors.d.ts.map +1 -1
  187. package/dist/lib/errors.js +12 -35
  188. package/dist/lib/errors.js.map +1 -1
  189. package/dist/lib/keystore.d.ts +0 -24
  190. package/dist/lib/keystore.d.ts.map +1 -1
  191. package/dist/lib/keystore.js +3 -10
  192. package/dist/lib/keystore.js.map +1 -1
  193. package/dist/lib/monero/output-scanner.d.ts +0 -18
  194. package/dist/lib/monero/output-scanner.d.ts.map +1 -1
  195. package/dist/lib/monero/output-scanner.js +17 -40
  196. package/dist/lib/monero/output-scanner.js.map +1 -1
  197. package/dist/lib/monero/rpc.d.ts +0 -64
  198. package/dist/lib/monero/rpc.d.ts.map +1 -1
  199. package/dist/lib/monero/rpc.js +17 -59
  200. package/dist/lib/monero/rpc.js.map +1 -1
  201. package/dist/lib/monero/verify-lock.d.ts +0 -12
  202. package/dist/lib/monero/verify-lock.d.ts.map +1 -1
  203. package/dist/lib/monero/verify-lock.js +9 -24
  204. package/dist/lib/monero/verify-lock.js.map +1 -1
  205. package/dist/lib/monero/verify-sweep.d.ts +0 -20
  206. package/dist/lib/monero/verify-sweep.d.ts.map +1 -1
  207. package/dist/lib/monero/verify-sweep.js +7 -25
  208. package/dist/lib/monero/verify-sweep.js.map +1 -1
  209. package/dist/lib/pow-solver.d.ts.map +1 -1
  210. package/dist/lib/pow-solver.js +3 -8
  211. package/dist/lib/pow-solver.js.map +1 -1
  212. package/dist/lib/retry.d.ts +7 -64
  213. package/dist/lib/retry.d.ts.map +1 -1
  214. package/dist/lib/retry.js +13 -13
  215. package/dist/lib/retry.js.map +1 -1
  216. package/dist/portable.d.ts.map +1 -1
  217. package/dist/portable.js +3 -4
  218. package/dist/portable.js.map +1 -1
  219. package/dist/quote-binding.d.ts +0 -13
  220. package/dist/quote-binding.d.ts.map +1 -1
  221. package/dist/quote-binding.js +3 -18
  222. package/dist/quote-binding.js.map +1 -1
  223. package/dist/swap-executor.d.ts +1 -5
  224. package/dist/swap-executor.d.ts.map +1 -1
  225. package/dist/swap-executor.js +1 -1
  226. package/dist/swap-executor.js.map +1 -1
  227. package/dist/types/api.d.ts +0 -6
  228. package/dist/types/api.d.ts.map +1 -1
  229. package/dist/types/api.js +6 -9
  230. package/dist/types/api.js.map +1 -1
  231. package/dist/types/errors.d.ts +0 -7
  232. package/dist/types/errors.d.ts.map +1 -1
  233. package/dist/types/errors.js +2 -7
  234. package/dist/types/errors.js.map +1 -1
  235. package/dist/types/index.js +1 -1
  236. package/dist/types/index.js.map +1 -1
  237. package/dist/types/keys.d.ts +0 -15
  238. package/dist/types/keys.d.ts.map +1 -1
  239. package/dist/types/protocol.d.ts +0 -51
  240. package/dist/types/protocol.d.ts.map +1 -1
  241. package/dist/types/protocol.js +3 -8
  242. package/dist/types/protocol.js.map +1 -1
  243. package/dist/types/status.d.ts +2 -0
  244. package/dist/types/status.d.ts.map +1 -1
  245. package/dist/types/status.js +17 -14
  246. package/dist/types/status.js.map +1 -1
  247. package/dist/types/verification.d.ts +0 -10
  248. package/dist/types/verification.d.ts.map +1 -1
  249. package/dist/types/verification.js +7 -15
  250. package/dist/types/verification.js.map +1 -1
  251. package/dist/verification/chainflip-networks.d.ts +2 -35
  252. package/dist/verification/chainflip-networks.d.ts.map +1 -1
  253. package/dist/verification/chainflip-networks.js +12 -4
  254. package/dist/verification/chainflip-networks.js.map +1 -1
  255. package/dist/verification/chainflip.d.ts +0 -40
  256. package/dist/verification/chainflip.d.ts.map +1 -1
  257. package/dist/verification/chainflip.js +49 -129
  258. package/dist/verification/chainflip.js.map +1 -1
  259. package/dist/verification/constants.d.ts +0 -40
  260. package/dist/verification/constants.d.ts.map +1 -1
  261. package/dist/verification/constants.js +14 -40
  262. package/dist/verification/constants.js.map +1 -1
  263. package/dist/verification/index.d.ts +0 -26
  264. package/dist/verification/index.d.ts.map +1 -1
  265. package/dist/verification/index.js +8 -12
  266. package/dist/verification/index.js.map +1 -1
  267. package/dist/verification/memo.d.ts +0 -15
  268. package/dist/verification/memo.d.ts.map +1 -1
  269. package/dist/verification/memo.js +9 -27
  270. package/dist/verification/memo.js.map +1 -1
  271. package/dist/verification/near-intents.d.ts +0 -63
  272. package/dist/verification/near-intents.d.ts.map +1 -1
  273. package/dist/verification/near-intents.js +25 -67
  274. package/dist/verification/near-intents.js.map +1 -1
  275. package/dist/verification/rate-oracle.d.ts +0 -22
  276. package/dist/verification/rate-oracle.d.ts.map +1 -1
  277. package/dist/verification/rate-oracle.js +6 -11
  278. package/dist/verification/rate-oracle.js.map +1 -1
  279. package/dist/verification/thorchain-networks.d.ts +0 -27
  280. package/dist/verification/thorchain-networks.d.ts.map +1 -1
  281. package/dist/verification/thorchain-networks.js +13 -15
  282. package/dist/verification/thorchain-networks.js.map +1 -1
  283. package/dist/verification/thorchain.d.ts +0 -30
  284. package/dist/verification/thorchain.d.ts.map +1 -1
  285. package/dist/verification/thorchain.js +24 -47
  286. package/dist/verification/thorchain.js.map +1 -1
  287. package/dist/wasm-pins.d.ts +3 -3
  288. package/dist/wasm-pins.js +1 -1
  289. package/dist/wire/near-intents.zod.d.ts +0 -27
  290. package/dist/wire/near-intents.zod.d.ts.map +1 -1
  291. package/dist/wire/near-intents.zod.js +15 -23
  292. package/dist/wire/near-intents.zod.js.map +1 -1
  293. package/dist/wire/server/action.zod.d.ts +0 -10
  294. package/dist/wire/server/action.zod.d.ts.map +1 -1
  295. package/dist/wire/server/action.zod.js +8 -14
  296. package/dist/wire/server/action.zod.js.map +1 -1
  297. package/dist/wire/server/common.zod.d.ts +0 -13
  298. package/dist/wire/server/common.zod.d.ts.map +1 -1
  299. package/dist/wire/server/common.zod.js +6 -14
  300. package/dist/wire/server/common.zod.js.map +1 -1
  301. package/dist/wire/server/quotes.zod.d.ts +35 -20
  302. package/dist/wire/server/quotes.zod.d.ts.map +1 -1
  303. package/dist/wire/server/quotes.zod.js +1 -0
  304. package/dist/wire/server/quotes.zod.js.map +1 -1
  305. package/dist/wire/server/swap.zod.d.ts +0 -42
  306. package/dist/wire/server/swap.zod.d.ts.map +1 -1
  307. package/dist/wire/server/swap.zod.js +12 -26
  308. package/dist/wire/server/swap.zod.js.map +1 -1
  309. package/dist/wire/thorchain.zod.d.ts +0 -8
  310. package/dist/wire/thorchain.zod.d.ts.map +1 -1
  311. package/dist/wire/thorchain.zod.js +3 -8
  312. package/dist/wire/thorchain.zod.js.map +1 -1
  313. package/package.json +4 -4
  314. package/wasm/miradex-rust/README.md +3 -4
  315. package/wasm/miradex-rust/miradex_rust.d.ts +4 -6
  316. package/wasm/miradex-rust/miradex_rust.js +4 -6
  317. package/wasm/miradex-rust/miradex_rust_bg.wasm +0 -0
@@ -4,23 +4,12 @@ import { VerificationError } from '../types/index.js';
4
4
  import { ChainflipDepositChannelSchema, } from '../wire/chainflip.zod.js';
5
5
  import { chainflipEndpointsForNetwork, } from './chainflip-networks.js';
6
6
  const CHANNEL_SAFETY_MARGIN_MS = 90 * 60 * 1000;
7
- /**
8
- * Verify a Chainflip deposit address by reading the SDK-owned broker REST
9
- * endpoint and confirming the channel binding matches the user's expected
10
- * destination. The verifier URL comes from the SDK's hardcoded per-network
11
- * registry (`chainflip-networks.ts`) `v.status_url` from the server is
12
- * intentionally ignored.
13
- *
14
- * Single-source design rationale: the only browser-reachable mainnet
15
- * state-chain RPC node (`mainnet-archive.chainflip.io`) does not expose a
16
- * single-channel lookup method, so a true two-source cross-check isn't
17
- * feasible without proxying or fetching the entire open-channel set.
18
- * Trust posture: the broker is Chainflip's own infrastructure (same
19
- * trust assumption a Chainflip-hosted UI makes); a misreport cannot move
20
- * funds because the user's wallet still holds them.
21
- *
22
- * Fails closed when the network has no configured verifier endpoint.
23
- */
7
+ // Reads the SDK-owned broker REST endpoint (hardcoded per network in
8
+ // chainflip-networks.ts; v.status_url from the server is ignored).
9
+ // Single-source by necessity: the only browser-reachable mainnet
10
+ // state-chain RPC has no per-channel lookup. Trust posture: the broker is
11
+ // Chainflip's own infra; a misreport can't move funds because the user's
12
+ // wallet still holds them. Fails closed when no verifier is configured.
24
13
  export async function verifyChainflip(depositAddress, v, params, fetchFn, network, signal) {
25
14
  const endpoints = chainflipEndpointsForNetwork(network);
26
15
  if (!endpoints) {
@@ -57,17 +46,9 @@ export async function verifyChainflip(depositAddress, v, params, fetchFn, networ
57
46
  }
58
47
  return resultOf('chainflip', checks);
59
48
  }
60
- /**
61
- * Read a Chainflip deposit channel from the appropriate verifier and
62
- * confirm it binds to the caller's expected destination/refund address.
63
- *
64
- * @throws {VerificationError} `E_CHAINFLIP_CHANNEL_MISBINDING` when the
65
- * broker disagrees with the caller's expected destination/refund.
66
- * @throws {VerificationError} `E_CHAINFLIP_CHANNEL_EXPIRING` when the
67
- * channel expires within the safety margin.
68
- * @throws {VerificationError} `E_CHAINFLIP_AMOUNT_BELOW_MIN` /
69
- * `E_CHAINFLIP_AMOUNT_ABOVE_MAX` when `depositAmountSats` is out of band.
70
- */
49
+ // Throws E_CHAINFLIP_CHANNEL_MISBINDING on dest/refund mismatch,
50
+ // E_CHAINFLIP_CHANNEL_EXPIRING within the safety margin,
51
+ // E_CHAINFLIP_AMOUNT_BELOW_MIN / _ABOVE_MAX out of band.
71
52
  export async function verifyChainflipChannel(input) {
72
53
  const timeoutMs = input.timeoutMs ?? VERIFY_FETCH_TIMEOUT_MS;
73
54
  const channel = input.endpoints.mode === 'rest'
@@ -81,21 +62,12 @@ export async function verifyChainflipChannel(input) {
81
62
  requireExpiryMargin(channel.expiryTime);
82
63
  }
83
64
  }
84
- /**
85
- * Coerce a Chainflip broker REST response into a `ChainflipDepositChannel`.
86
- *
87
- * The v2 hosted-broker endpoint (`/v2/swaps/<id>`) returns the swap status
88
- * with a nested `depositChannel` carrying just the addressing primitives
89
- * the binding fields the verifier checks (`srcChain`, `destChain`,
90
- * `destAsset`, `destAddress`, `refundAddress`) live at the wrapper top
91
- * level. Localnet / older brokers still emit the flat shape with
92
- * everything on the channel itself. Both are accepted: parser tries flat
93
- * first, then merges nested-channel + wrapper, with the wrapper taking
94
- * priority for any field the channel omits.
95
- *
96
- * Tolerates unknown / extra fields and unknown `state` values — Chainflip's
97
- * v2 surface evolves faster than any enum we'd hardcode.
98
- */
65
+ // v2 hosted broker returns a status wrapper with a nested depositChannel and
66
+ // the binding fields (srcChain, destChain, destAsset, destAddress,
67
+ // refundAddress) at the wrapper top level. Localnet / older brokers still
68
+ // emit the flat channel shape. Try flat first, then merge nested + wrapper
69
+ // with wrapper winning for fields the channel omits. Tolerates unknown
70
+ // fields / unknown state values; v2 evolves faster than we'd hardcode.
99
71
  function parseBrokerResponse(raw) {
100
72
  const flat = ChainflipDepositChannelSchema.safeParse(raw);
101
73
  if (flat.success && flat.data.srcChain && flat.data.destChain) {
@@ -110,15 +82,11 @@ function parseBrokerResponse(raw) {
110
82
  throw flat.error;
111
83
  }
112
84
  const channel = ChainflipDepositChannelSchema.parse(nestedRaw);
113
- // Hoist the binding fields the verifier checks. The wrapper's value
114
- // wins when the nested channel doesn't carry it (typical for
115
- // chainflip's v2 response), but we never overwrite a non-null channel
116
- // value with the wrapper. `refundAddress` sits inside one of several
117
- // nested params objects depending on the Chainflip API revision —
118
- // historically `fillOrKillParams.refundAddress` or
119
- // `refundParameters.refundAddress`, sometimes at the wrapper level
120
- // and sometimes under `depositChannel`. Walk every known path before
121
- // declaring it missing.
85
+ // Hoist the binding fields. Wrapper wins when the channel omits them
86
+ // (typical on v2). refundAddress lives at several nested paths depending
87
+ // on the Chainflip API revision (fillOrKillParams.refundAddress,
88
+ // refundParameters.refundAddress, top-level, under depositChannel).
89
+ // Walk all known paths before declaring it missing.
122
90
  return {
123
91
  ...channel,
124
92
  srcChain: channel.srcChain ?? readPath(wrapper, [['srcChain']]),
@@ -140,10 +108,7 @@ function parseBrokerResponse(raw) {
140
108
  ]),
141
109
  };
142
110
  }
143
- /**
144
- * Walk a list of dotted paths against `obj`, returning the first string
145
- * value found. Returns undefined if no path resolves to a string.
146
- */
111
+ // Returns the first non-empty string found at any of the listed paths.
147
112
  function readPath(obj, paths) {
148
113
  for (const path of paths) {
149
114
  let cur = obj;
@@ -160,16 +125,9 @@ function readPath(obj, paths) {
160
125
  return undefined;
161
126
  }
162
127
  async function fetchBrokerChannelRest(baseUrl, channelId, fetchFn, timeoutMs, externalSignal) {
163
- // Path-based lookup: GET ${baseUrl}/${channelId}. Trim a trailing
164
- // slash so callers may pass `https://host/v2/swaps` or
165
- // `https://host/v2/swaps/` interchangeably.
166
- //
167
- // `cache: 'no-store'` short-circuits the browser HTTP cache. Without it,
168
- // a page reload re-issues the request with `If-None-Match` /
169
- // `If-Modified-Since` from a previous successful fetch, the broker
170
- // returns **304 Not Modified** with an empty body, and we have nothing
171
- // to parse. (`res.ok` is false for 304 — only 200-299 qualify.) We need
172
- // a parseable body every time, so always force a fresh round-trip.
128
+ // GET ${baseUrl}/${channelId}; trim trailing slash so callers can pass
129
+ // either form. cache:'no-store' avoids a 304 Not Modified with empty body
130
+ // on page reload (the conditional request would have nothing to parse).
173
131
  const url = `${baseUrl.replace(/\/+$/, '')}/${encodeURIComponent(channelId)}`;
174
132
  const start = Date.now();
175
133
  let attempt = 0;
@@ -179,12 +137,9 @@ async function fetchBrokerChannelRest(baseUrl, channelId, fetchFn, timeoutMs, ex
179
137
  throw new VerificationError('E_CHAINFLIP_HTTP', 'verification aborted by caller');
180
138
  }
181
139
  try {
182
- // `cache` is part of the standard fetch RequestInit but absent from
183
- // the Node-only types this package compiles against (lib: ES2022).
184
- // Cast through the broader browser shape — the option is a no-op in
185
- // Node where it isn't supported, and exactly what we need in browsers.
186
- // Combine the per-fetch timeout with the caller's abort signal so
187
- // either path cancels the in-flight request.
140
+ // `cache` is browser-only; no-op in Node where ES2022 lib types
141
+ // omit it. Combined signal so either timeout or external abort
142
+ // cancels the in-flight request.
188
143
  const init = {
189
144
  signal: combineSignals(AbortSignal.timeout(timeoutMs), externalSignal),
190
145
  cache: 'no-store',
@@ -192,40 +147,29 @@ async function fetchBrokerChannelRest(baseUrl, channelId, fetchFn, timeoutMs, ex
192
147
  const res = await fetchFn(url, init);
193
148
  if (res.ok) {
194
149
  const raw = await res.json();
195
- // Chainflip's `/v2/swaps/<composite>` returns the swap **status**
196
- // wrapper — a top-level object with `state` and a NESTED
197
- // `depositChannel`. The legacy `/v0/deposit_channels/<id>` endpoint
198
- // returned the channel flat; both shapes are still seen in the wild.
199
- // Try the status shape first (the v2 path we actually call), unwrap
200
- // its `depositChannel`, and fall back to the flat shape so the
201
- // verifier survives both response styles without touching the rest
202
- // of the pipeline.
150
+ // parseBrokerResponse handles both v2 (nested) and legacy (flat).
203
151
  return parseBrokerResponse(raw);
204
152
  }
205
- // 304 only happens if the cache directive above is somehow ignored
206
- // (older browsers, service workers, intermediary proxies). Treat it
207
- // as a directive to retry without conditional headers — but, since
208
- // the body is empty, we cannot proceed without a fresh fetch.
209
- // Falling through to the retry loop is the right move: the next
210
- // attempt will be a fresh request.
153
+ // 304 only happens if the no-store directive is bypassed
154
+ // (older browsers, service workers, intermediary proxies). Body
155
+ // is empty, fall through to a fresh retry.
211
156
  if (res.status === 304) {
212
157
  lastError = new VerificationError('E_CHAINFLIP_HTTP', 'broker returned 304 — cache directive bypassed, retrying');
213
158
  }
214
159
  else if (res.status >= 400 && res.status < 500 && res.status !== 404) {
215
- // 4xx other than 404 means a real misconfiguration (bad path,
216
- // malformed id) — retrying won't help; bail out immediately.
160
+ // 4xx (excluding 404) means bad path / malformed id; retrying won't help.
217
161
  throw new VerificationError('E_CHAINFLIP_HTTP', `broker HTTP ${String(res.status)}`);
218
162
  }
219
163
  else {
220
164
  // 404 (channel not yet ingested by REST) and 5xx (gateway / state
221
- // chain RPC blip) are expected transient outcomes worth retrying.
165
+ // chain RPC blip) are transient keep retrying.
222
166
  lastError = new VerificationError('E_CHAINFLIP_HTTP', `broker HTTP ${String(res.status)}`);
223
167
  }
224
168
  }
225
169
  catch (err) {
226
170
  if (err instanceof VerificationError)
227
171
  throw err;
228
- // Network error, timeout, or zod parse failure — treat as transient.
172
+ // Network / timeout / zod parse — treat as transient.
229
173
  lastError = new VerificationError('E_CHAINFLIP_HTTP', err instanceof Error ? err.message : String(err));
230
174
  }
231
175
  const backoffMs = CHAINFLIP_REST_RETRY_BACKOFF_MS[attempt] ??
@@ -241,23 +185,17 @@ async function fetchBrokerChannelRest(baseUrl, channelId, fetchFn, timeoutMs, ex
241
185
  }
242
186
  throw lastError;
243
187
  }
244
- /**
245
- * Combine a per-fetch timeout signal with an optional external abort signal.
246
- * If only one is provided, return it directly so consumers without
247
- * `AbortSignal.any` support (older runtimes) still work in the common case.
248
- */
188
+ // Returns the timeout signal alone if no external is provided so older
189
+ // runtimes without AbortSignal.any still work in the common case.
249
190
  function combineSignals(timeout, external) {
250
191
  if (external === undefined)
251
192
  return timeout;
252
- // `AbortSignal.any` is in Node 20+ and all modern browsers the same
253
- // baseline `AbortSignal.timeout` already requires.
193
+ // AbortSignal.any is in Node 20+ and all modern browsers (same baseline
194
+ // as AbortSignal.timeout above).
254
195
  return AbortSignal.any([timeout, external]);
255
196
  }
256
- /**
257
- * Like `setTimeout` as a promise, but resolves early when the optional
258
- * external signal aborts. Intentionally does NOT throw on abort — the
259
- * caller checks `signal.aborted` after the await and decides how to fail.
260
- */
197
+ // Resolves early on abort. Does NOT throw — caller checks signal.aborted
198
+ // after the await and decides how to fail.
261
199
  function sleepAbortable(ms, signal) {
262
200
  if (signal === undefined) {
263
201
  return new Promise((resolve) => setTimeout(resolve, ms));
@@ -280,11 +218,8 @@ function sleepAbortable(ms, signal) {
280
218
  signal.addEventListener('abort', onAbort);
281
219
  });
282
220
  }
283
- /**
284
- * Regtest-only path. The localnet chainflip-broker exposes the legacy
285
- * `cf_deposit_channel_info` state-chain RPC method that the public
286
- * mainnet hosted broker does not.
287
- */
221
+ // Regtest only: the localnet broker exposes the legacy
222
+ // cf_deposit_channel_info state-chain RPC that the public broker doesn't.
288
223
  async function fetchBrokerChannelJsonRpc(rpcUrl, channelId, fetchFn, timeoutMs, externalSignal) {
289
224
  const body = {
290
225
  jsonrpc: '2.0',
@@ -304,25 +239,16 @@ async function fetchBrokerChannelJsonRpc(rpcUrl, channelId, fetchFn, timeoutMs,
304
239
  const raw = (await res.json());
305
240
  return ChainflipDepositChannelSchema.parse(raw.result);
306
241
  }
307
- /**
308
- * Canonicalise a chain identifier so the SDK can compare its caller-side
309
- * value (the public crypto-server API emits the base name `ethereum`)
310
- * against Chainflip's REST response (TitleCase like `Ethereum`). Just
311
- * lowercases — the server is responsible for stripping its internal
312
- * routing prefix, so we don't second-guess it here.
313
- */
242
+ // crypto-server emits 'ethereum'; Chainflip REST returns 'Ethereum'.
314
243
  function canonicalChain(chain) {
315
244
  return chain ? chain.toLowerCase() : undefined;
316
245
  }
317
- /** Canonicalise a token symbol Chainflip is consistent on uppercase but
318
- * callers occasionally pass mixed case. */
246
+ // Chainflip is uppercase but callers sometimes pass mixed case.
319
247
  function canonicalAsset(asset) {
320
248
  return asset ? asset.toLowerCase() : undefined;
321
249
  }
322
- /** Ethereum-style addresses come back in unspecified case from Chainflip;
323
- * the user always sends lowercase from the wallet. Compare case-insensitively
324
- * for hex addresses; Bitcoin/Polkadot/Solana addresses are case-sensitive
325
- * and pass through unchanged. */
250
+ // Hex addresses come back in unspecified case; compare case-insensitively.
251
+ // Bitcoin/Polkadot/Solana are case-sensitive and pass through unchanged.
326
252
  function canonicalAddress(addr) {
327
253
  if (!addr)
328
254
  return undefined;
@@ -341,15 +267,9 @@ function requireBindsExpected(channel, expected) {
341
267
  if (canonicalAsset(channel.destAsset) !== canonicalAsset(expected.destAsset)) {
342
268
  throw new VerificationError('E_CHAINFLIP_CHANNEL_MISBINDING', `channel destAsset ${String(channel.destAsset)} != expected ${expected.destAsset}`);
343
269
  }
344
- // Refund address is a soft check: Chainflip's `/v2/swaps/<id>` doesn't
345
- // always expose it (the field lives in the broker's deposit-channel
346
- // creation request, not necessarily in the status query). When the
347
- // channel object carries one, we strictly require it to match — that
348
- // catches a real attack where the broker rebinds the refund. When it
349
- // doesn't carry one, we skip silently rather than fail the whole
350
- // verification on a check we can't perform. The destination address
351
- // (the path funds actually flow through on success) is the strict
352
- // gate above; this one only matters on the refund-on-failure branch.
270
+ // Soft check: /v2/swaps/<id> doesn't always expose refundAddress. When
271
+ // present we strictly require a match (catches a broker rebind attack);
272
+ // when absent we skip rather than fail on a check we can't perform.
353
273
  if (expected.refundAddress !== undefined &&
354
274
  channel.refundAddress !== undefined &&
355
275
  canonicalAddress(channel.refundAddress) !== canonicalAddress(expected.refundAddress)) {
@@ -1 +1 @@
1
- {"version":3,"file":"chainflip.js","sourceRoot":"","sources":["../../src/verification/chainflip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chainflip.js","sourceRoot":"","sources":["../../src/verification/chainflip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAqB,MAAM,aAAa,CAAC;AACjF,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,6BAA6B,GAE9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,4BAA4B,GAG7B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,qEAAqE;AACrE,mEAAmE;AACnE,iEAAiE;AACjE,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,cAAsB,EACtB,CAAwB,EACxB,MAAoB,EACpB,OAAgC,EAChC,OAAyB,EACzB,MAAoB;IAEpB,MAAM,SAAS,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,WAAW,EAAE;YACzB,KAAK,CACH,+BAA+B,EAC/B,KAAK,EACL,qDAAqD,OAAO,GAAG,CAChE;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,MAAM,CAAC,WAAW,EAAE;YACzB,KAAK,CACH,+BAA+B,EAC/B,KAAK,EACL,wDAAwD,CACzD;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,sBAAsB,CAAC;YAC3B,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,SAAS;YACT,QAAQ,EAAE;gBACR,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACjF,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,SAAS,EAAE,MAAM,CAAC,OAAO;gBACzB,SAAS,EAAE,MAAM,CAAC,OAAO;aAC1B;YACD,OAAO;YACP,MAAM;SACP,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,EAAE,iCAAiC,CAAC,CAAC,CAAC;QAC1F,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CACT,KAAK,CACH,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CACnE,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAuBD,iEAAiE;AACjE,yDAAyD;AACzD,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkC;IAElC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,uBAAuB,CAAC;IAC7D,MAAM,OAAO,GACX,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM;QAC7B,CAAC,CAAC,MAAM,sBAAsB,CAC1B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,SAAS,EACT,KAAK,CAAC,MAAM,CACb;QACH,CAAC,CAAC,MAAM,yBAAyB,CAC7B,KAAK,CAAC,SAAS,CAAC,MAAM,EACtB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,SAAS,EACT,KAAK,CAAC,MAAM,CACb,CAAC;IACR,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,mEAAmE;AACnE,0EAA0E;AAC1E,2EAA2E;AAC3E,uEAAuE;AACvE,uEAAuE;AACvE,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,IAAI,GAAG,6BAA6B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,OAAO,GAAG,GAA8B,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/D,qEAAqE;IACrE,yEAAyE;IACzE,iEAAiE;IACjE,oEAAoE;IACpE,oDAAoD;IACpD,OAAO;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/D,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAClE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAClE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QACxE,aAAa,EACX,OAAO,CAAC,aAAa;YACrB,QAAQ,CAAC,OAAO,EAAE;gBAChB,CAAC,eAAe,CAAC;gBACjB,CAAC,kBAAkB,EAAE,eAAe,CAAC;gBACrC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;gBACtC,CAAC,kBAAkB,EAAE,eAAe,CAAC;gBACrC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;gBACtC,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,CAAC;gBACvD,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;gBACxD,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,CAAC;gBACvD,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;aACzD,CAAC;KACL,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,SAAS,QAAQ,CACf,GAA4B,EAC5B,KAAqC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,GAAY,GAAG,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC5C,GAAG,GAAG,SAAS,CAAC;gBAChB,MAAM;YACR,CAAC;YACD,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;IAC5D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAAe,EACf,SAAiB,EACjB,OAAgC,EAChC,SAAiB,EACjB,cAA4B;IAE5B,uEAAuE;IACvE,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,SAAS,GAAsB,IAAI,iBAAiB,CACtD,kBAAkB,EAClB,kCAAkC,CACnC,CAAC;IAEF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,6BAA6B,EAAE,CAAC;QAC1D,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,iBAAiB,CACzB,kBAAkB,EAClB,gCAAgC,CACjC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,gEAAgE;YAChE,+DAA+D;YAC/D,iCAAiC;YACjC,MAAM,IAAI,GAAkD;gBAC1D,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;gBACtE,KAAK,EAAE,UAAU;aAClB,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC7B,kEAAkE;gBAClE,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,yDAAyD;YACzD,gEAAgE;YAChE,2CAA2C;YAC3C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,SAAS,GAAG,IAAI,iBAAiB,CAC/B,kBAAkB,EAClB,0DAA0D,CAC3D,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvE,0EAA0E;gBAC1E,MAAM,IAAI,iBAAiB,CACzB,kBAAkB,EAClB,eAAe,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACpC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,kEAAkE;gBAClE,iDAAiD;gBACjD,SAAS,GAAG,IAAI,iBAAiB,CAC/B,kBAAkB,EAClB,eAAe,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACpC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAiB;gBAAE,MAAM,GAAG,CAAC;YAChD,sDAAsD;YACtD,SAAS,GAAG,IAAI,iBAAiB,CAC/B,kBAAkB,EAClB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GACb,+BAA+B,CAAC,OAAO,CAAC;YACxC,+BAA+B,CAAC,+BAA+B,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3E,MAAM,CAAC;QACT,OAAO,IAAI,CAAC,CAAC;QACb,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,IAAI,6BAA6B;YAAE,MAAM;QAC3E,MAAM,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAChD,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,iBAAiB,CACzB,kBAAkB,EAClB,gCAAgC,CACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC;AAED,uEAAuE;AACvE,kEAAkE;AAClE,SAAS,cAAc,CACrB,OAAoB,EACpB,QAAsB;IAEtB,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC3C,wEAAwE;IACxE,iCAAiC;IACjC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,yEAAyE;AACzE,2CAA2C;AAC3C,SAAS,cAAc,CAAC,EAAU,EAAE,MAAoB;IACtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uDAAuD;AACvD,0EAA0E;AAC1E,KAAK,UAAU,yBAAyB,CACtC,MAAc,EACd,SAAiB,EACjB,OAAgC,EAChC,SAAiB,EACjB,cAA4B;IAE5B,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,yBAAyB;QACjC,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;KAClC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;KACvE,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,oBAAoB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;IACvD,OAAO,6BAA6B,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,qEAAqE;AACrE,SAAS,cAAc,CAAC,KAAyB;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,gEAAgE;AAChE,SAAS,cAAc,CAAC,KAAyB;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,2EAA2E;AAC3E,yEAAyE;AACzE,SAAS,gBAAgB,CAAC,IAAwB;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAgC,EAChC,QAAiD;IAEjD,IAAI,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,iBAAiB,CACzB,gCAAgC,EAChC,uBAAuB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,QAAQ,CAAC,WAAW,EAAE,CACzF,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,iBAAiB,CACzB,gCAAgC,EAChC,oBAAoB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,iBAAiB,CACzB,gCAAgC,EAChC,qBAAqB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,QAAQ,CAAC,SAAS,EAAE,CACnF,CAAC;IACJ,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,iBAAiB,CACzB,gCAAgC,EAChC,qBAAqB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,QAAQ,CAAC,SAAS,EAAE,CACnF,CAAC;IACJ,CAAC;IACD,uEAAuE;IACvE,wEAAwE;IACxE,oEAAoE;IACpE,IACE,QAAQ,CAAC,aAAa,KAAK,SAAS;QACpC,OAAO,CAAC,aAAa,KAAK,SAAS;QACnC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,EACpF,CAAC;QACD,MAAM,IAAI,iBAAiB,CACzB,gCAAgC,EAChC,yBAAyB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,QAAQ,CAAC,aAAa,EAAE,CAC/F,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgC,EAAE,UAAkB;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,EAC9B,WAAW,MAAM,CAAC,QAAQ,EAAE,sBAAsB,OAAO,CAAC,YAAY,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,EAC9B,WAAW,MAAM,CAAC,QAAQ,EAAE,sBAAsB,OAAO,CAAC,YAAY,EAAE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IAChD,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO;IACnC,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxC,IAAI,SAAS,GAAG,wBAAwB,EAAE,CAAC;QACzC,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,EAC9B,sBAAsB,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CACrF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,52 +1,12 @@
1
1
  export declare const VERIFY_MAX_ATTEMPTS = 12;
2
2
  export declare const VERIFY_RETRY_DELAY_MS = 5000;
3
3
  export declare const VERIFY_FETCH_TIMEOUT_MS = 10000;
4
- /**
5
- * Chainflip's hosted broker REST `/v2/swaps/<composite>` lags channel
6
- * creation by ~30-60s — the broker creates the on-chain channel via
7
- * `broker_request_swap_deposit_address` immediately, but the REST
8
- * indexer ingests it on its own cadence. A first-attempt 404 is normal.
9
- *
10
- * Total retry budget covers the typical worst-case ingest delay; the
11
- * backoff schedule starts tight (so the common case clears in seconds)
12
- * and lengthens to avoid hammering the gateway during real outages.
13
- */
14
4
  export declare const CHAINFLIP_REST_RETRY_TOTAL_MS = 120000;
15
5
  export declare const CHAINFLIP_REST_RETRY_BACKOFF_MS: readonly number[];
16
6
  export declare const ATOMICSWAP_TIMELOCK_MIN_BLOCKS = 5;
17
7
  export declare const ATOMICSWAP_TIMELOCK_MAX_BLOCKS = 288;
18
- /**
19
- * Bounds for the BIP68 sequence applied to TxPunish — the relative timelock
20
- * Alice must wait after TxCancel confirms before she can broadcast TxPunish.
21
- *
22
- * The minimum is the size of the refund window Bob is guaranteed: between
23
- * TxCancel confirming and TxPunish becoming spendable, Bob must have time to
24
- * notice, decrypt the encsig, and broadcast TxFullRefund/TxPartialRefund. A
25
- * sub-block window degenerates into a fee race that Alice can win by
26
- * out-of-band miner submission.
27
- *
28
- * Production deployments should configure ASB with the documented mainnet
29
- * defaults (≥72). This lower bound (5) is the smallest positive integer that
30
- * still rejects the degenerate `0` case the V-1 fix guards against, and exists
31
- * to allow regtest tier2/system-test fixtures (which use 50) to run without
32
- * patching every consumer of these constants.
33
- *
34
- * @security Closes V-1 — the Rust core enforces real production bounds via the
35
- * env config (e.g. `bitcoin_punish_timelock` defaults).
36
- */
37
8
  export declare const ATOMICSWAP_PUNISH_TIMELOCK_MIN_BLOCKS = 5;
38
9
  export declare const ATOMICSWAP_PUNISH_TIMELOCK_MAX_BLOCKS = 288;
39
- /**
40
- * Bounds for the BIP68 sequence applied to TxReclaim — the additional wait
41
- * after TxPartialRefund confirms before Bob can pull the amnesty back.
42
- *
43
- * Min is 1 — only the degenerate `0` case is rejected. Matches the Rust
44
- * source (xmr-atomic-swap/core/swap-env/src/env.rs:65,88) which sets
45
- * `bitcoin_remaining_refund_timelock = 2` for both mainnet and testnet;
46
- * a stricter floor here would reject the Rust-shipped defaults.
47
- *
48
- * @security Closes V-1 (amnesty-path variant) — only `0` is unsafe.
49
- */
50
10
  export declare const ATOMICSWAP_REMAINING_REFUND_TIMELOCK_MIN_BLOCKS = 1;
51
11
  export declare const ATOMICSWAP_REMAINING_REFUND_TIMELOCK_MAX_BLOCKS = 288;
52
12
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/verification/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAC3C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,SAAU,CAAC;AACrD,eAAO,MAAM,+BAA+B,EAAE,SAAS,MAAM,EAE5D,CAAC;AACF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qCAAqC,IAAI,CAAC;AACvD,eAAO,MAAM,qCAAqC,MAAM,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,+CAA+C,IAAI,CAAC;AACjE,eAAO,MAAM,+CAA+C,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/verification/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAC3C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAO9C,eAAO,MAAM,6BAA6B,SAAU,CAAC;AACrD,eAAO,MAAM,+BAA+B,EAAE,SAAS,MAAM,EAE5D,CAAC;AACF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAOlD,eAAO,MAAM,qCAAqC,IAAI,CAAC;AACvD,eAAO,MAAM,qCAAqC,MAAM,CAAC;AAMzD,eAAO,MAAM,+CAA+C,IAAI,CAAC;AACjE,eAAO,MAAM,+CAA+C,MAAM,CAAC"}
@@ -1,54 +1,28 @@
1
1
  export const VERIFY_MAX_ATTEMPTS = 12;
2
2
  export const VERIFY_RETRY_DELAY_MS = 5_000;
3
3
  export const VERIFY_FETCH_TIMEOUT_MS = 10_000;
4
- /**
5
- * Chainflip's hosted broker REST `/v2/swaps/<composite>` lags channel
6
- * creation by ~30-60s the broker creates the on-chain channel via
7
- * `broker_request_swap_deposit_address` immediately, but the REST
8
- * indexer ingests it on its own cadence. A first-attempt 404 is normal.
9
- *
10
- * Total retry budget covers the typical worst-case ingest delay; the
11
- * backoff schedule starts tight (so the common case clears in seconds)
12
- * and lengthens to avoid hammering the gateway during real outages.
13
- */
4
+ // Chainflip's broker REST /v2/swaps/<composite> lags channel creation by
5
+ // ~30-60s (the on-chain channel exists immediately, the REST indexer
6
+ // catches up on its own cadence). First-attempt 404 is normal.
7
+ // Backoff starts tight so the common case clears in seconds, then
8
+ // lengthens so we don't hammer the gateway during real outages.
14
9
  export const CHAINFLIP_REST_RETRY_TOTAL_MS = 120_000;
15
10
  export const CHAINFLIP_REST_RETRY_BACKOFF_MS = [
16
11
  1_000, 2_000, 4_000, 8_000, 16_000, 30_000, 30_000, 30_000,
17
12
  ];
18
13
  export const ATOMICSWAP_TIMELOCK_MIN_BLOCKS = 5;
19
14
  export const ATOMICSWAP_TIMELOCK_MAX_BLOCKS = 288;
20
- /**
21
- * Bounds for the BIP68 sequence applied to TxPunish the relative timelock
22
- * Alice must wait after TxCancel confirms before she can broadcast TxPunish.
23
- *
24
- * The minimum is the size of the refund window Bob is guaranteed: between
25
- * TxCancel confirming and TxPunish becoming spendable, Bob must have time to
26
- * notice, decrypt the encsig, and broadcast TxFullRefund/TxPartialRefund. A
27
- * sub-block window degenerates into a fee race that Alice can win by
28
- * out-of-band miner submission.
29
- *
30
- * Production deployments should configure ASB with the documented mainnet
31
- * defaults (≥72). This lower bound (5) is the smallest positive integer that
32
- * still rejects the degenerate `0` case the V-1 fix guards against, and exists
33
- * to allow regtest tier2/system-test fixtures (which use 50) to run without
34
- * patching every consumer of these constants.
35
- *
36
- * @security Closes V-1 — the Rust core enforces real production bounds via the
37
- * env config (e.g. `bitcoin_punish_timelock` defaults).
38
- */
15
+ // V-1: BIP68 bounds for TxPunish (relative timelock Alice waits after
16
+ // TxCancel confirms). Floor is 5 the smallest positive integer that
17
+ // rejects the degenerate 0 case while still admitting regtest fixtures
18
+ // that use 50. Real production bounds (>=72 mainnet) are enforced in the
19
+ // Rust core via env config.
39
20
  export const ATOMICSWAP_PUNISH_TIMELOCK_MIN_BLOCKS = 5;
40
21
  export const ATOMICSWAP_PUNISH_TIMELOCK_MAX_BLOCKS = 288;
41
- /**
42
- * Bounds for the BIP68 sequence applied to TxReclaim — the additional wait
43
- * after TxPartialRefund confirms before Bob can pull the amnesty back.
44
- *
45
- * Min is 1 — only the degenerate `0` case is rejected. Matches the Rust
46
- * source (xmr-atomic-swap/core/swap-env/src/env.rs:65,88) which sets
47
- * `bitcoin_remaining_refund_timelock = 2` for both mainnet and testnet;
48
- * a stricter floor here would reject the Rust-shipped defaults.
49
- *
50
- * @security Closes V-1 (amnesty-path variant) — only `0` is unsafe.
51
- */
22
+ // V-1 amnesty variant: BIP68 bounds for TxReclaim. Min is 1 — only the
23
+ // degenerate 0 is unsafe. Matches the Rust default
24
+ // bitcoin_remaining_refund_timelock = 2 (xmr-atomic-swap/core/swap-env/
25
+ // src/env.rs:65,88).
52
26
  export const ATOMICSWAP_REMAINING_REFUND_TIMELOCK_MIN_BLOCKS = 1;
53
27
  export const ATOMICSWAP_REMAINING_REFUND_TIMELOCK_MAX_BLOCKS = 288;
54
28
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/verification/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AACrD,MAAM,CAAC,MAAM,+BAA+B,GAAsB;IAChE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAC3D,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,+CAA+C,GAAG,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,+CAA+C,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/verification/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,yEAAyE;AACzE,qEAAqE;AACrE,+DAA+D;AAC/D,kEAAkE;AAClE,gEAAgE;AAChE,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AACrD,MAAM,CAAC,MAAM,+BAA+B,GAAsB;IAChE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAC3D,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD,sEAAsE;AACtE,sEAAsE;AACtE,uEAAuE;AACvE,yEAAyE;AACzE,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,CAAC;AAEzD,uEAAuE;AACvE,mDAAmD;AACnD,wEAAwE;AACxE,qBAAqB;AACrB,MAAM,CAAC,MAAM,+CAA+C,GAAG,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,+CAA+C,GAAG,GAAG,CAAC"}
@@ -1,12 +1,3 @@
1
- /**
2
- * Deposit-address verification dispatcher.
3
- *
4
- * Each provider has a dedicated verification path that validates the deposit
5
- * address against the provider's own infrastructure (THORNode vaults,
6
- * Chainflip channels, NEAR intent registry, atomic-swap lock script). Common
7
- * client-side checks (address presence, output amount, destination match) run
8
- * for every provider.
9
- */
10
1
  import type { Logger } from '../interfaces/logger.js';
11
2
  import type { SwapVerification, VerificationResult } from '../types/index.js';
12
3
  import { verifyAtomicSwap } from './atomic-swap.js';
@@ -48,24 +39,7 @@ export interface VerifyDepositParams {
48
39
  readonly fetchFn?: typeof globalThis.fetch;
49
40
  readonly resume?: boolean;
50
41
  readonly logger?: Logger;
51
- /**
52
- * External abort signal. Wired from the engine's AbortController so a
53
- * caller-side `engine.destroy()` actually stops verification mid-flight.
54
- * Without this, the chainflip REST retry loop alone can keep polling
55
- * for up to CHAINFLIP_REST_RETRY_TOTAL_MS (120 s) after the engine has
56
- * been told to stop — burning user bandwidth and racing whatever the
57
- * caller spun up to replace it.
58
- */
59
42
  readonly signal?: AbortSignal;
60
43
  }
61
- /**
62
- * Verify a deposit address against the authoritative infrastructure for its
63
- * provider. Common client-side checks (address presence, output amount,
64
- * destination match) run for every provider.
65
- *
66
- * @throws {VerificationError} `E_PROVIDER_UNKNOWN` for an unrecognised
67
- * provider; `E_UNEXPECTED_TIMELOCK` when `timelock_blocks` is set for a
68
- * non-atomicswap provider.
69
- */
70
44
  export declare function verifyDepositAddress(params: VerifyDepositParams): Promise<VerificationResult>;
71
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/verification/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/verification/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ // Per-provider verification dispatcher. Each path validates against the
2
+ // provider's own infrastructure (THORNode vaults, Chainflip channels,
3
+ // 1Click intent registry, atomic-swap lock script). Common client-side
4
+ // checks (address presence, output amount, destination match) run for all.
1
5
  import { noopLogger } from '../interfaces/logger.js';
2
6
  import { VerificationError } from '../types/index.js';
3
7
  import { verifyAtomicSwap } from './atomic-swap.js';
@@ -14,15 +18,8 @@ export { THORCHAIN_VERIFICATION_NETWORKS, thorchainEndpointsForNetwork, } from '
14
18
  export { fetchNearIntentStatus, requireIntentBinds, requireIntentDeadlineMargin, verifyNearIntentOnChain, } from './near-intents.js';
15
19
  export { fetchConsensusRate } from './rate-oracle.js';
16
20
  export { VERIFY_FETCH_TIMEOUT_MS, VERIFY_MAX_ATTEMPTS, VERIFY_RETRY_DELAY_MS } from './constants.js';
17
- /**
18
- * Verify a deposit address against the authoritative infrastructure for its
19
- * provider. Common client-side checks (address presence, output amount,
20
- * destination match) run for every provider.
21
- *
22
- * @throws {VerificationError} `E_PROVIDER_UNKNOWN` for an unrecognised
23
- * provider; `E_UNEXPECTED_TIMELOCK` when `timelock_blocks` is set for a
24
- * non-atomicswap provider.
25
- */
21
+ // Throws E_PROVIDER_UNKNOWN for an unknown provider, E_UNEXPECTED_TIMELOCK
22
+ // when timelock_blocks is set on a non-atomicswap provider.
26
23
  export async function verifyDepositAddress(params) {
27
24
  const { depositAddress, verification, destAddress, refundAddress, toToken, amount, fromChain, toChain, fromToken, network = 'mainnet', protocol, expectedAmountOut, expectedDestAddress, fetchFn = globalThis.fetch, resume, logger = noopLogger, signal, } = params;
28
25
  const verifyParams = {
@@ -34,9 +31,8 @@ export async function verifyDepositAddress(params) {
34
31
  toChain,
35
32
  fromToken,
36
33
  };
37
- // AV-A.13 scope: timelock_blocks is only meaningful for atomicswap. If
38
- // any other provider carries one, it's a client-side bug or a server
39
- // confusion attempt — reject loudly.
34
+ // AV-A.13: timelock_blocks is only meaningful for atomicswap. Anything
35
+ // else is a client bug or a server confusion attempt; fail loud.
40
36
  if (verification.provider !== 'atomicswap' && protocol?.timelock_blocks !== undefined) {
41
37
  throw new VerificationError('E_UNEXPECTED_TIMELOCK', `timelock_blocks is set for non-atomicswap provider ${verification.provider}`);
42
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/verification/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/verification/index.ts"],"names":[],"mappings":"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"}
@@ -7,21 +7,6 @@ export interface ParsedThorchainMemo {
7
7
  readonly affiliate?: string;
8
8
  readonly affiliateFeeBps?: number;
9
9
  }
10
- /**
11
- * Parse a THORChain memo string. Accepts `SWAP:`, `=:`, and `s:` prefixes
12
- * followed by asset, destination, optional min-out (either a plain integer
13
- * or the streaming form `LIMIT/INTERVAL/QUANTITY`), optional affiliate,
14
- * optional affiliate fee in bps.
15
- *
16
- * @throws {VerificationError} `E_MEMO_MALFORMED` when the memo does not
17
- * match the canonical ABI.
18
- */
19
10
  export declare function parseThorchainMemo(memo: string): ParsedThorchainMemo;
20
- /**
21
- * Assert the parsed memo's destination field equals the expected address.
22
- *
23
- * @throws {VerificationError} `E_MEMO_DEST_MISMATCH` on mismatch.
24
- * @throws {VerificationError} `E_MEMO_MALFORMED` if the memo fails to parse.
25
- */
26
11
  export declare function requireMemoBindsDestination(memo: string, expectedDestAddress: string): void;
27
12
  //# sourceMappingURL=memo.d.ts.map