@miradexio/client 0.1.0 → 0.1.2

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 (306) 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 +66 -111
  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 +0 -13
  48. package/dist/atomic-swap/monero-sweep/index.d.ts.map +1 -1
  49. package/dist/atomic-swap/monero-sweep/index.js +30 -56
  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 +2 -11
  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.d.ts +0 -28
  97. package/dist/engine/flows/atomic-flow.d.ts.map +1 -1
  98. package/dist/engine/flows/atomic-flow.js +64 -121
  99. package/dist/engine/flows/atomic-flow.js.map +1 -1
  100. package/dist/engine/flows/swap-flow.d.ts +0 -19
  101. package/dist/engine/flows/swap-flow.d.ts.map +1 -1
  102. package/dist/engine/flows/swap-flow.js +41 -83
  103. package/dist/engine/flows/swap-flow.js.map +1 -1
  104. package/dist/engine/miradex-engine.d.ts +1 -62
  105. package/dist/engine/miradex-engine.d.ts.map +1 -1
  106. package/dist/engine/miradex-engine.js +18 -50
  107. package/dist/engine/miradex-engine.js.map +1 -1
  108. package/dist/engine/pipeline.d.ts +0 -11
  109. package/dist/engine/pipeline.d.ts.map +1 -1
  110. package/dist/engine/pipeline.js +9 -21
  111. package/dist/engine/pipeline.js.map +1 -1
  112. package/dist/engine/platform.d.ts +0 -160
  113. package/dist/engine/platform.d.ts.map +1 -1
  114. package/dist/engine/platform.js +2 -0
  115. package/dist/engine/platform.js.map +1 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +7 -11
  118. package/dist/index.js.map +1 -1
  119. package/dist/interfaces/blockchain.d.ts +1 -13
  120. package/dist/interfaces/blockchain.d.ts.map +1 -1
  121. package/dist/interfaces/blockchain.js +1 -0
  122. package/dist/interfaces/blockchain.js.map +1 -1
  123. package/dist/interfaces/logger.d.ts +0 -6
  124. package/dist/interfaces/logger.d.ts.map +1 -1
  125. package/dist/interfaces/logger.js.map +1 -1
  126. package/dist/lib/bitcoin/deposit-watcher.d.ts +0 -23
  127. package/dist/lib/bitcoin/deposit-watcher.d.ts.map +1 -1
  128. package/dist/lib/bitcoin/deposit-watcher.js +7 -31
  129. package/dist/lib/bitcoin/deposit-watcher.js.map +1 -1
  130. package/dist/lib/bitcoin/script-hash.d.ts.map +1 -1
  131. package/dist/lib/bitcoin/script-hash.js +2 -6
  132. package/dist/lib/bitcoin/script-hash.js.map +1 -1
  133. package/dist/lib/bitcoin/sweep.d.ts +0 -30
  134. package/dist/lib/bitcoin/sweep.d.ts.map +1 -1
  135. package/dist/lib/bitcoin/sweep.js +11 -40
  136. package/dist/lib/bitcoin/sweep.js.map +1 -1
  137. package/dist/lib/bitcoin/tx-verify.d.ts +0 -28
  138. package/dist/lib/bitcoin/tx-verify.d.ts.map +1 -1
  139. package/dist/lib/bitcoin/tx-verify.js +20 -61
  140. package/dist/lib/bitcoin/tx-verify.js.map +1 -1
  141. package/dist/lib/bitcoin/wallet.d.ts +0 -38
  142. package/dist/lib/bitcoin/wallet.d.ts.map +1 -1
  143. package/dist/lib/bitcoin/wallet.js +13 -38
  144. package/dist/lib/bitcoin/wallet.js.map +1 -1
  145. package/dist/lib/crypto/bytes.d.ts +0 -14
  146. package/dist/lib/crypto/bytes.d.ts.map +1 -1
  147. package/dist/lib/crypto/bytes.js +5 -14
  148. package/dist/lib/crypto/bytes.js.map +1 -1
  149. package/dist/lib/crypto/errors.d.ts +0 -5
  150. package/dist/lib/crypto/errors.d.ts.map +1 -1
  151. package/dist/lib/crypto/errors.js +2 -5
  152. package/dist/lib/crypto/errors.js.map +1 -1
  153. package/dist/lib/crypto/libp2p-identity.d.ts +0 -15
  154. package/dist/lib/crypto/libp2p-identity.d.ts.map +1 -1
  155. package/dist/lib/crypto/libp2p-identity.js +16 -28
  156. package/dist/lib/crypto/libp2p-identity.js.map +1 -1
  157. package/dist/lib/crypto/mnemonic.d.ts +0 -9
  158. package/dist/lib/crypto/mnemonic.d.ts.map +1 -1
  159. package/dist/lib/crypto/mnemonic.js +11 -27
  160. package/dist/lib/crypto/mnemonic.js.map +1 -1
  161. package/dist/lib/crypto/platform.d.ts +0 -6
  162. package/dist/lib/crypto/platform.d.ts.map +1 -1
  163. package/dist/lib/crypto/platform.js +2 -6
  164. package/dist/lib/crypto/platform.js.map +1 -1
  165. package/dist/lib/crypto/scalars.d.ts +0 -23
  166. package/dist/lib/crypto/scalars.d.ts.map +1 -1
  167. package/dist/lib/crypto/scalars.js +10 -23
  168. package/dist/lib/crypto/scalars.js.map +1 -1
  169. package/dist/lib/crypto/types.d.ts +0 -4
  170. package/dist/lib/crypto/types.d.ts.map +1 -1
  171. package/dist/lib/crypto/wasm.d.ts +0 -23
  172. package/dist/lib/crypto/wasm.d.ts.map +1 -1
  173. package/dist/lib/crypto/wasm.js +10 -13
  174. package/dist/lib/crypto/wasm.js.map +1 -1
  175. package/dist/lib/default-config.d.ts +1 -59
  176. package/dist/lib/default-config.d.ts.map +1 -1
  177. package/dist/lib/default-config.js +22 -61
  178. package/dist/lib/default-config.js.map +1 -1
  179. package/dist/lib/errors.d.ts +0 -54
  180. package/dist/lib/errors.d.ts.map +1 -1
  181. package/dist/lib/errors.js +12 -35
  182. package/dist/lib/errors.js.map +1 -1
  183. package/dist/lib/keystore.d.ts +0 -24
  184. package/dist/lib/keystore.d.ts.map +1 -1
  185. package/dist/lib/keystore.js +3 -10
  186. package/dist/lib/keystore.js.map +1 -1
  187. package/dist/lib/monero/output-scanner.d.ts +0 -18
  188. package/dist/lib/monero/output-scanner.d.ts.map +1 -1
  189. package/dist/lib/monero/output-scanner.js +17 -40
  190. package/dist/lib/monero/output-scanner.js.map +1 -1
  191. package/dist/lib/monero/rpc.d.ts +0 -64
  192. package/dist/lib/monero/rpc.d.ts.map +1 -1
  193. package/dist/lib/monero/rpc.js +17 -59
  194. package/dist/lib/monero/rpc.js.map +1 -1
  195. package/dist/lib/monero/verify-lock.d.ts +0 -12
  196. package/dist/lib/monero/verify-lock.d.ts.map +1 -1
  197. package/dist/lib/monero/verify-lock.js +9 -24
  198. package/dist/lib/monero/verify-lock.js.map +1 -1
  199. package/dist/lib/monero/verify-sweep.d.ts +0 -20
  200. package/dist/lib/monero/verify-sweep.d.ts.map +1 -1
  201. package/dist/lib/monero/verify-sweep.js +7 -25
  202. package/dist/lib/monero/verify-sweep.js.map +1 -1
  203. package/dist/lib/pow-solver.d.ts.map +1 -1
  204. package/dist/lib/pow-solver.js +3 -8
  205. package/dist/lib/pow-solver.js.map +1 -1
  206. package/dist/lib/retry.d.ts +7 -64
  207. package/dist/lib/retry.d.ts.map +1 -1
  208. package/dist/lib/retry.js +13 -13
  209. package/dist/lib/retry.js.map +1 -1
  210. package/dist/portable.d.ts.map +1 -1
  211. package/dist/portable.js +3 -4
  212. package/dist/portable.js.map +1 -1
  213. package/dist/quote-binding.d.ts +0 -13
  214. package/dist/quote-binding.d.ts.map +1 -1
  215. package/dist/quote-binding.js +3 -18
  216. package/dist/quote-binding.js.map +1 -1
  217. package/dist/swap-executor.d.ts +1 -5
  218. package/dist/swap-executor.d.ts.map +1 -1
  219. package/dist/swap-executor.js +1 -1
  220. package/dist/swap-executor.js.map +1 -1
  221. package/dist/types/api.d.ts +0 -6
  222. package/dist/types/api.d.ts.map +1 -1
  223. package/dist/types/api.js +6 -9
  224. package/dist/types/api.js.map +1 -1
  225. package/dist/types/errors.d.ts +0 -7
  226. package/dist/types/errors.d.ts.map +1 -1
  227. package/dist/types/errors.js +2 -7
  228. package/dist/types/errors.js.map +1 -1
  229. package/dist/types/index.js +1 -1
  230. package/dist/types/index.js.map +1 -1
  231. package/dist/types/keys.d.ts +0 -15
  232. package/dist/types/keys.d.ts.map +1 -1
  233. package/dist/types/protocol.d.ts +0 -51
  234. package/dist/types/protocol.d.ts.map +1 -1
  235. package/dist/types/protocol.js +3 -8
  236. package/dist/types/protocol.js.map +1 -1
  237. package/dist/types/status.d.ts.map +1 -1
  238. package/dist/types/status.js +9 -14
  239. package/dist/types/status.js.map +1 -1
  240. package/dist/types/verification.d.ts +0 -10
  241. package/dist/types/verification.d.ts.map +1 -1
  242. package/dist/types/verification.js +7 -15
  243. package/dist/types/verification.js.map +1 -1
  244. package/dist/verification/chainflip-networks.d.ts +2 -35
  245. package/dist/verification/chainflip-networks.d.ts.map +1 -1
  246. package/dist/verification/chainflip-networks.js +12 -4
  247. package/dist/verification/chainflip-networks.js.map +1 -1
  248. package/dist/verification/chainflip.d.ts +0 -40
  249. package/dist/verification/chainflip.d.ts.map +1 -1
  250. package/dist/verification/chainflip.js +49 -129
  251. package/dist/verification/chainflip.js.map +1 -1
  252. package/dist/verification/constants.d.ts +0 -40
  253. package/dist/verification/constants.d.ts.map +1 -1
  254. package/dist/verification/constants.js +14 -40
  255. package/dist/verification/constants.js.map +1 -1
  256. package/dist/verification/index.d.ts +0 -26
  257. package/dist/verification/index.d.ts.map +1 -1
  258. package/dist/verification/index.js +8 -12
  259. package/dist/verification/index.js.map +1 -1
  260. package/dist/verification/memo.d.ts +0 -15
  261. package/dist/verification/memo.d.ts.map +1 -1
  262. package/dist/verification/memo.js +9 -27
  263. package/dist/verification/memo.js.map +1 -1
  264. package/dist/verification/near-intents.d.ts +0 -63
  265. package/dist/verification/near-intents.d.ts.map +1 -1
  266. package/dist/verification/near-intents.js +25 -67
  267. package/dist/verification/near-intents.js.map +1 -1
  268. package/dist/verification/rate-oracle.d.ts +0 -22
  269. package/dist/verification/rate-oracle.d.ts.map +1 -1
  270. package/dist/verification/rate-oracle.js +6 -11
  271. package/dist/verification/rate-oracle.js.map +1 -1
  272. package/dist/verification/thorchain-networks.d.ts +0 -27
  273. package/dist/verification/thorchain-networks.d.ts.map +1 -1
  274. package/dist/verification/thorchain-networks.js +13 -15
  275. package/dist/verification/thorchain-networks.js.map +1 -1
  276. package/dist/verification/thorchain.d.ts +0 -30
  277. package/dist/verification/thorchain.d.ts.map +1 -1
  278. package/dist/verification/thorchain.js +24 -47
  279. package/dist/verification/thorchain.js.map +1 -1
  280. package/dist/wasm-pins.d.ts +3 -3
  281. package/dist/wasm-pins.js +1 -1
  282. package/dist/wire/near-intents.zod.d.ts +0 -27
  283. package/dist/wire/near-intents.zod.d.ts.map +1 -1
  284. package/dist/wire/near-intents.zod.js +15 -23
  285. package/dist/wire/near-intents.zod.js.map +1 -1
  286. package/dist/wire/server/action.zod.d.ts +0 -10
  287. package/dist/wire/server/action.zod.d.ts.map +1 -1
  288. package/dist/wire/server/action.zod.js +8 -14
  289. package/dist/wire/server/action.zod.js.map +1 -1
  290. package/dist/wire/server/common.zod.d.ts +0 -13
  291. package/dist/wire/server/common.zod.d.ts.map +1 -1
  292. package/dist/wire/server/common.zod.js +6 -14
  293. package/dist/wire/server/common.zod.js.map +1 -1
  294. package/dist/wire/server/swap.zod.d.ts +0 -42
  295. package/dist/wire/server/swap.zod.d.ts.map +1 -1
  296. package/dist/wire/server/swap.zod.js +12 -26
  297. package/dist/wire/server/swap.zod.js.map +1 -1
  298. package/dist/wire/thorchain.zod.d.ts +0 -8
  299. package/dist/wire/thorchain.zod.d.ts.map +1 -1
  300. package/dist/wire/thorchain.zod.js +3 -8
  301. package/dist/wire/thorchain.zod.js.map +1 -1
  302. package/package.json +4 -5
  303. package/wasm/miradex-rust/README.md +3 -4
  304. package/wasm/miradex-rust/miradex_rust.d.ts +4 -6
  305. package/wasm/miradex-rust/miradex_rust.js +4 -6
  306. package/wasm/miradex-rust/miradex_rust_bg.wasm +0 -0
@@ -1,14 +1,3 @@
1
- /**
2
- * External rate oracles for cross-checking engine quotes.
3
- *
4
- * The client queries two independent oracles (e.g., CoinGecko + CryptoCompare)
5
- * and demands they agree within a band before allowing a swap to proceed.
6
- * Any wider disagreement surfaces as `E_ORACLE_SPREAD`; too few responses as
7
- * `E_ORACLE_QUORUM`.
8
- *
9
- * @security Closes AV-D.4 / AV-H.12 — protects against sidecar + proxy
10
- * collusion on rate quotes.
11
- */
12
1
  import type { Logger } from '../interfaces/logger.js';
13
2
  export interface RateOracleConfig {
14
3
  readonly oracleUrls: ReadonlyArray<string>;
@@ -17,16 +6,5 @@ export interface RateOracleConfig {
17
6
  readonly quorum: number;
18
7
  readonly logger?: Logger;
19
8
  }
20
- /**
21
- * Query every configured oracle in parallel, extract a numeric rate from each
22
- * response, and return the median if at least `quorum` oracles agree within
23
- * a 2 % band.
24
- *
25
- * @param input Oracle URLs, fetch function, timeout, quorum, logger.
26
- * @param extractRate Per-oracle adapter that pulls the rate out of the body.
27
- * @returns The median rate across all agreeing oracles.
28
- * @throws {VerificationError} `E_ORACLE_QUORUM` when fewer than `quorum`
29
- * oracles respond; `E_ORACLE_SPREAD` when the rates span more than 2 %.
30
- */
31
9
  export declare function fetchConsensusRate(input: RateOracleConfig, extractRate: (url: string, body: unknown) => number): Promise<number>;
32
10
  //# sourceMappingURL=rate-oracle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-oracle.d.ts","sourceRoot":"","sources":["../../src/verification/rate-oracle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAClD,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
1
+ {"version":3,"file":"rate-oracle.d.ts","sourceRoot":"","sources":["../../src/verification/rate-oracle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAOD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAClD,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
@@ -1,18 +1,13 @@
1
+ // AV-D.4 / AV-H.12: rate-oracle quorum. Query two independent oracles
2
+ // (CoinGecko + CryptoCompare etc.) and require agreement within a band.
3
+ // E_ORACLE_SPREAD on wider disagreement, E_ORACLE_QUORUM on too few responses.
1
4
  import { noopLogger } from '../interfaces/logger.js';
2
5
  import { VerificationError } from '../types/index.js';
3
6
  import { VERIFY_FETCH_TIMEOUT_MS } from './constants.js';
4
7
  const DEFAULT_SPREAD_CAP = 0.02; // 2 %
5
- /**
6
- * Query every configured oracle in parallel, extract a numeric rate from each
7
- * response, and return the median if at least `quorum` oracles agree within
8
- * a 2 % band.
9
- *
10
- * @param input Oracle URLs, fetch function, timeout, quorum, logger.
11
- * @param extractRate Per-oracle adapter that pulls the rate out of the body.
12
- * @returns The median rate across all agreeing oracles.
13
- * @throws {VerificationError} `E_ORACLE_QUORUM` when fewer than `quorum`
14
- * oracles respond; `E_ORACLE_SPREAD` when the rates span more than 2 %.
15
- */
8
+ // Returns the median rate across oracles that agree within 2%.
9
+ // Throws E_ORACLE_QUORUM if fewer than `quorum` responded,
10
+ // E_ORACLE_SPREAD if disagreement exceeds the cap.
16
11
  export async function fetchConsensusRate(input, extractRate) {
17
12
  const timeoutMs = input.timeoutMs ?? VERIFY_FETCH_TIMEOUT_MS;
18
13
  const log = input.logger ?? noopLogger;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-oracle.js","sourceRoot":"","sources":["../../src/verification/rate-oracle.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAUzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,MAAM;AAEvC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAuB,EACvB,WAAmD;IAEnD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,uBAAuB,CAAC;IAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;SAC5E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,IAAI,iBAAiB,CACzB,iBAAiB,EACjB,QAAQ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,oBAAoB,CACvF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;IAClE,IAAI,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAChC,MAAM,IAAI,iBAAiB,CACzB,iBAAiB,EACjB,uBAAuB,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpG,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"rate-oracle.js","sourceRoot":"","sources":["../../src/verification/rate-oracle.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,6 @@
1
- /**
2
- * SDK-owned THORChain verification endpoints. Same shape as the chainflip
3
- * registry: hardcoded per network so the SDK never trusts the server-supplied
4
- * `verification.inbound_addresses_url`.
5
- *
6
- * On regtest the URL points at the system-tests fake-verifier
7
- * (`system-tests/verifier/`), which serves a `ThornodeInboundAddressesSchema`-
8
- * shaped response built from the swap row in Postgres.
9
- *
10
- * Returns `undefined` for any network without configured endpoints — the SDK
11
- * fails closed rather than falling back to server-supplied URLs.
12
- */
13
1
  export type ThorchainNetwork = 'mainnet' | 'testnet' | 'regtest';
14
2
  export interface ThorchainVerificationEndpoints {
15
- /**
16
- * `GET ${inboundAddressesUrl}` returns an array of
17
- * `ThornodeInboundAddress` objects (chain, address, halted, ...). This
18
- * is THORNode's *primary* inbound per chain — exactly one entry per
19
- * chain. On regtest the verifier echoes the swap row back as a
20
- * single-vault array.
21
- */
22
3
  readonly inboundAddressesUrl: string;
23
- /**
24
- * `GET ${asgardVaultsUrl}` returns every Asgard vault (not just the
25
- * primary), used as a fallback when the primary check misses. During
26
- * THORChain churn the primary inbound rotates ahead of the retiring
27
- * vault, but the retiring vault still legitimately accepts in-flight
28
- * deposits — the wider asgard list catches that case. Optional: if
29
- * unset (e.g. regtest), the verifier skips the fallback.
30
- */
31
4
  readonly asgardVaultsUrl?: string;
32
5
  }
33
6
  export declare const THORCHAIN_VERIFICATION_NETWORKS: Readonly<Partial<Record<ThorchainNetwork, ThorchainVerificationEndpoints>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"thorchain-networks.d.ts","sourceRoot":"","sources":["../../src/verification/thorchain-networks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,8BAA8B;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAwBD,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CACpD,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC,CAAC,CAalE,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,GACxB,8BAA8B,GAAG,SAAS,CAE5C"}
1
+ {"version":3,"file":"thorchain-networks.d.ts","sourceRoot":"","sources":["../../src/verification/thorchain-networks.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,8BAA8B;IAE7C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IAIrC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAiBD,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CACpD,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC,CAAC,CAalE,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,gBAAgB,GACxB,8BAA8B,GAAG,SAAS,CAE5C"}
@@ -1,21 +1,19 @@
1
- // Distinct from chainflip's verifier port (9099) so the two regtest stacks
2
- // (system-tests-chainflip / system-tests-thorchain) can run side-by-side
3
- // without contending on the same TCP port.
1
+ // Hardcoded per network so the SDK never trusts a server-supplied
2
+ // verification.inbound_addresses_url. On regtest the URL points at the
3
+ // system-tests fake-verifier (system-tests/verifier/), which serves a
4
+ // ThornodeInboundAddressesSchema-shaped response from the swap row.
5
+ // Returns undefined for unconfigured networks — SDK fails closed.
6
+ // Distinct from chainflip's regtest port (9099) so both stacks can run
7
+ // side-by-side.
4
8
  const DEFAULT_REGTEST_VERIFIER_URL = 'http://127.0.0.1:9098/thorchain/inbound_addresses';
5
- // THORNode public endpoints. Liquify is the primary because
6
- // `*.thorchain.network` gates aggressively with HTTP 403 for some IPs.
7
- // (Nine Realms `*.ninerealms.com` endpoints were retired April 2025.)
9
+ // Liquify is primary because *.thorchain.network HTTP-403s some IPs.
10
+ // Nine Realms (*.ninerealms.com) was retired April 2025.
8
11
  const THORCHAIN_MAINNET_INBOUND_ADDRESSES = 'https://gateway.liquify.com/chain/thorchain_api/thorchain/inbound_addresses';
9
12
  const THORCHAIN_MAINNET_ASGARD_VAULTS = 'https://gateway.liquify.com/chain/thorchain_api/thorchain/vaults/asgard';
10
- // Note on the missing stagenet entry: THORChain has no usable public
11
- // stagenet today (the legacy `stagenet-thornode.ninerealms.com` was
12
- // retired April 2025 and no replacement was published). The
13
- // product-level decision is that the `testnet` network flag governs
14
- // **atomic swaps only** — every other provider (thorchain, chainflip,
15
- // near-intents) executes on mainnet regardless of the flag, because
16
- // no usable testnet exists for them. So testnet here mirrors mainnet
17
- // — verification still hits real THORNode, swaps are real-money. The
18
- // UI surfaces this with the testnet banner so users aren't surprised.
13
+ // No usable public THORChain stagenet exists (legacy stagenet-thornode.ninerealms.com
14
+ // was retired April 2025, no replacement). The `testnet` flag governs
15
+ // atomicswap only; thorchain/chainflip/near-intents run on mainnet
16
+ // regardless. Testnet swaps are real-money UI shows a banner.
19
17
  export const THORCHAIN_VERIFICATION_NETWORKS = {
20
18
  mainnet: {
21
19
  inboundAddressesUrl: THORCHAIN_MAINNET_INBOUND_ADDRESSES,
@@ -1 +1 @@
1
- {"version":3,"file":"thorchain-networks.js","sourceRoot":"","sources":["../../src/verification/thorchain-networks.ts"],"names":[],"mappings":"AAkCA,2EAA2E;AAC3E,yEAAyE;AACzE,2CAA2C;AAC3C,MAAM,4BAA4B,GAAG,mDAAmD,CAAC;AAEzF,4DAA4D;AAC5D,uEAAuE;AACvE,sEAAsE;AACtE,MAAM,mCAAmC,GACvC,6EAA6E,CAAC;AAChF,MAAM,+BAA+B,GACnC,yEAAyE,CAAC;AAE5E,qEAAqE;AACrE,oEAAoE;AACpE,4DAA4D;AAC5D,oEAAoE;AACpE,sEAAsE;AACtE,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,MAAM,CAAC,MAAM,+BAA+B,GAExC;IACF,OAAO,EAAE;QACP,mBAAmB,EAAE,mCAAmC;QACxD,eAAe,EAAE,+BAA+B;KACjD;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,mCAAmC;QACxD,eAAe,EAAE,+BAA+B;KACjD;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,4BAA4B;KAClD;CACF,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAC1C,OAAyB;IAEzB,OAAO,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"thorchain-networks.js","sourceRoot":"","sources":["../../src/verification/thorchain-networks.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,uEAAuE;AACvE,sEAAsE;AACtE,oEAAoE;AACpE,kEAAkE;AAalE,uEAAuE;AACvE,gBAAgB;AAChB,MAAM,4BAA4B,GAAG,mDAAmD,CAAC;AAEzF,qEAAqE;AACrE,yDAAyD;AACzD,MAAM,mCAAmC,GACvC,6EAA6E,CAAC;AAChF,MAAM,+BAA+B,GACnC,yEAAyE,CAAC;AAE5E,sFAAsF;AACtF,sEAAsE;AACtE,mEAAmE;AACnE,gEAAgE;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAExC;IACF,OAAO,EAAE;QACP,mBAAmB,EAAE,mCAAmC;QACxD,eAAe,EAAE,+BAA+B;KACjD;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,mCAAmC;QACxD,eAAe,EAAE,+BAA+B;KACjD;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,4BAA4B;KAClD;CACF,CAAC;AAEF,MAAM,UAAU,4BAA4B,CAC1C,OAAyB;IAEzB,OAAO,+BAA+B,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC"}
@@ -3,34 +3,12 @@ import type { Logger } from '../interfaces/logger.js';
3
3
  import { type VerifyParams } from './shared.js';
4
4
  import { type ThornodeInboundAddress } from '../wire/thorchain.zod.js';
5
5
  import { type ThorchainNetwork } from './thorchain-networks.js';
6
- /**
7
- * Verify a THORChain deposit address against the SDK-owned inbound-addresses
8
- * endpoint. The endpoint is hardcoded per network in `thorchain-networks.ts`
9
- * — `v.inbound_addresses_url` from the server is intentionally ignored so a
10
- * compromised server cannot redirect verification to its own infrastructure.
11
- *
12
- * Memo is parsed strictly (no substring matching) per AV-A.14 / AV-K.6.
13
- * Vault quorum and quote cross-check live in separate helpers used by the
14
- * swap-executor layer.
15
- *
16
- * Fails closed when the network has no configured verifier endpoints.
17
- */
18
6
  export declare function verifyThorchain(depositAddress: string, v: ThorchainVerification, params: VerifyParams, fetchFn: typeof globalThis.fetch, network: ThorchainNetwork, resume?: boolean, externalSignal?: AbortSignal): Promise<VerificationResult>;
19
7
  export interface FetchThorchainVaultsInput {
20
8
  readonly fetchFn: typeof globalThis.fetch;
21
9
  readonly timeoutMs?: number;
22
10
  readonly logger?: Logger;
23
11
  }
24
- /**
25
- * Fetch THORChain inbound addresses from THORNode and Midgard in parallel.
26
- * Returns the list of vaults that appear in at least two independent sources
27
- * agreeing on `(chain, address)` and are not halted / paused.
28
- *
29
- * @throws {VerificationError} `E_THORCHAIN_QUORUM` when fewer than 2 sources
30
- * respond successfully.
31
- * @throws {VerificationError} `E_THORCHAIN_VAULT_DISAGREE` when no vault is
32
- * reported by at least 2 sources for the requested chain.
33
- */
34
12
  export declare function fetchThorchainVaults(input: FetchThorchainVaultsInput): Promise<readonly ThornodeInboundAddress[]>;
35
13
  export interface VerifyThorchainQuoteInput {
36
14
  readonly fromAsset: string;
@@ -43,13 +21,5 @@ export interface VerifyThorchainQuoteInput {
43
21
  readonly timeoutMs?: number;
44
22
  readonly thornodeUrls?: readonly string[];
45
23
  }
46
- /**
47
- * Cross-check the engine's `expectedOutput` against a live THORNode quote
48
- * fetched from ≥ 2 independent sources. Rejects when the engine value falls
49
- * outside the slippage band from the median of the node quotes.
50
- *
51
- * @throws {VerificationError} `E_THORNODE_QUOTE_UNAVAILABLE` when no source responds.
52
- * @throws {VerificationError} `E_RATE_DRIFT` when the engine value is out of band.
53
- */
54
24
  export declare function verifyThorchainQuote(input: VerifyThorchainQuoteInput): Promise<void>;
55
25
  //# sourceMappingURL=thorchain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thorchain.d.ts","sourceRoot":"","sources":["../../src/verification/thorchain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAqB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGjF,OAAO,EAEL,KAAK,sBAAsB,EAI5B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAgC,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAmB9F;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,MAAM,EACtB,CAAC,EAAE,qBAAqB,EACxB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,EAChC,OAAO,EAAE,gBAAgB,EACzB,MAAM,CAAC,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,WAAW,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAqH7B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAe5C;AA0CD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1F"}
1
+ {"version":3,"file":"thorchain.d.ts","sourceRoot":"","sources":["../../src/verification/thorchain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAqB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGjF,OAAO,EAEL,KAAK,sBAAsB,EAI5B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAgC,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAsB9F,wBAAsB,eAAe,CACnC,cAAc,EAAE,MAAM,EACtB,CAAC,EAAE,qBAAqB,EACxB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,EAChC,OAAO,EAAE,gBAAgB,EACzB,MAAM,CAAC,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,WAAW,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAkH7B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAe5C;AA0CD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAMD,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC1F"}
@@ -4,13 +4,10 @@ import { VerificationError } from '../types/index.js';
4
4
  import { ThornodeInboundAddressesSchema, ThornodeQuoteSchema, AsgardVaultsResponseSchema, } from '../wire/thorchain.zod.js';
5
5
  import { VERIFY_FETCH_TIMEOUT_MS } from './constants.js';
6
6
  import { thorchainEndpointsForNetwork } from './thorchain-networks.js';
7
- // Nine Realms (*.ninerealms.com) endpoints retired April 2025. The two
8
- // public providers post-migration are Liquify (`gateway.liquify.com/...`)
9
- // and the canonical `*.thorchain.network` hosts. Liquify is listed first
10
- // because `*.thorchain.network` gates aggressively with HTTP 403 ("the
11
- // gates of Asgard are closed to you") for some IPs/UAs; failing over to
12
- // `thorchain.network` after a Liquify success is fine and preserves the
13
- // two-source quorum in `fetchThorchainVaults`.
7
+ // Nine Realms retired April 2025. Liquify is listed first because
8
+ // *.thorchain.network gates some IPs/UAs with HTTP 403 ("the gates of
9
+ // Asgard are closed to you"); failover to thorchain.network preserves
10
+ // the two-source quorum in fetchThorchainVaults.
14
11
  const THORNODE_URLS = [
15
12
  'https://gateway.liquify.com/chain/thorchain_api/thorchain/inbound_addresses',
16
13
  'https://thornode.thorchain.network/thorchain/inbound_addresses',
@@ -19,18 +16,12 @@ const MIDGARD_URLS = [
19
16
  'https://gateway.liquify.com/chain/thorchain_midgard/v2/thorchain/inbound_addresses',
20
17
  'https://midgard.thorchain.network/v2/thorchain/inbound_addresses',
21
18
  ];
22
- /**
23
- * Verify a THORChain deposit address against the SDK-owned inbound-addresses
24
- * endpoint. The endpoint is hardcoded per network in `thorchain-networks.ts`
25
- * `v.inbound_addresses_url` from the server is intentionally ignored so a
26
- * compromised server cannot redirect verification to its own infrastructure.
27
- *
28
- * Memo is parsed strictly (no substring matching) per AV-A.14 / AV-K.6.
29
- * Vault quorum and quote cross-check live in separate helpers used by the
30
- * swap-executor layer.
31
- *
32
- * Fails closed when the network has no configured verifier endpoints.
33
- */
19
+ // SDK-owned inbound-addresses endpoint (hardcoded per network in
20
+ // thorchain-networks.ts). v.inbound_addresses_url from the server is
21
+ // intentionally ignored so a compromised server can't redirect to its own
22
+ // infra. Memo parsed strictly per AV-A.14 / AV-K.6. Vault quorum + quote
23
+ // cross-check live in separate helpers. Fails closed if the network has
24
+ // no configured endpoints.
34
25
  export async function verifyThorchain(depositAddress, v, params, fetchFn, network, resume, externalSignal) {
35
26
  const endpoints = thorchainEndpointsForNetwork(network);
36
27
  if (!endpoints) {
@@ -59,11 +50,9 @@ export async function verifyThorchain(depositAddress, v, params, fetchFn, networ
59
50
  const primaryMatch = vaults.find((vault) => vault.address === depositAddress);
60
51
  let matchedVia = primaryMatch ? 'primary' : null;
61
52
  let matchedAsgardStatus = null;
62
- // Primary `inbound_addresses` returns only the *current* primary per
63
- // chain. During THORChain churn the primary rotates ahead of the
64
- // previous vault, but the retiring vault is still a legitimate
65
- // destination for in-flight deposits. Cross-check against the wider
66
- // `/thorchain/vaults/asgard` list before failing closed.
53
+ // inbound_addresses only returns the current primary per chain. During
54
+ // churn the previous (retiring) vault is still a valid destination, so
55
+ // cross-check /thorchain/vaults/asgard before failing closed.
67
56
  if (!primaryMatch && endpoints.asgardVaultsUrl) {
68
57
  try {
69
58
  const asgardRes = await fetchFn(endpoints.asgardVaultsUrl, {
@@ -88,8 +77,8 @@ export async function verifyThorchain(depositAddress, v, params, fetchFn, networ
88
77
  }
89
78
  catch {
90
79
  // Fallback failure is non-fatal: we still report the primary miss
91
- // below. Don't escalate a network glitch on the fallback URL into
92
- // a verification failure when the swap might actually be fine.
80
+ // below; don't escalate a fallback-URL network glitch into a
81
+ // verification failure.
93
82
  }
94
83
  }
95
84
  if (matchedVia === 'primary' && primaryMatch) {
@@ -97,9 +86,8 @@ export async function verifyThorchain(depositAddress, v, params, fetchFn, networ
97
86
  checks.push(check('Vault active', !primaryMatch.halted, primaryMatch.halted ? 'Vault is halted' : 'Vault is active'));
98
87
  }
99
88
  else if (matchedVia === 'asgard-fallback') {
100
- // Found in the wider asgard list legitimate during churn.
101
- // Tag the detail so the UI can show "Matched (rotating)" or similar
102
- // and the user understands why the primary missed.
89
+ // Found in the wider asgard list (legitimate during churn).
90
+ // Tag detail so the UI can show "Matched (rotating)".
103
91
  checks.push(check('Asgard vault match', true, `Matched asgard (${matchedAsgardStatus ?? 'active'} during rotation)`));
104
92
  }
105
93
  else {
@@ -130,16 +118,9 @@ export async function verifyThorchain(depositAddress, v, params, fetchFn, networ
130
118
  }
131
119
  return resultOf('thorchain', checks);
132
120
  }
133
- /**
134
- * Fetch THORChain inbound addresses from THORNode and Midgard in parallel.
135
- * Returns the list of vaults that appear in at least two independent sources
136
- * agreeing on `(chain, address)` and are not halted / paused.
137
- *
138
- * @throws {VerificationError} `E_THORCHAIN_QUORUM` when fewer than 2 sources
139
- * respond successfully.
140
- * @throws {VerificationError} `E_THORCHAIN_VAULT_DISAGREE` when no vault is
141
- * reported by at least 2 sources for the requested chain.
142
- */
121
+ // Two-source quorum: returns vaults present in >=2 independent sources
122
+ // agreeing on (chain, address) and not halted/paused. Throws
123
+ // E_THORCHAIN_QUORUM when fewer than 2 sources respond.
143
124
  export async function fetchThorchainVaults(input) {
144
125
  const timeoutMs = input.timeoutMs ?? VERIFY_FETCH_TIMEOUT_MS;
145
126
  const urls = [...THORNODE_URLS, ...MIDGARD_URLS];
@@ -191,14 +172,10 @@ function reconcileVaults(lists) {
191
172
  }
192
173
  return accepted;
193
174
  }
194
- /**
195
- * Cross-check the engine's `expectedOutput` against a live THORNode quote
196
- * fetched from 2 independent sources. Rejects when the engine value falls
197
- * outside the slippage band from the median of the node quotes.
198
- *
199
- * @throws {VerificationError} `E_THORNODE_QUOTE_UNAVAILABLE` when no source responds.
200
- * @throws {VerificationError} `E_RATE_DRIFT` when the engine value is out of band.
201
- */
175
+ // Cross-check engine.expectedOutput against a live THORNode quote from >=1
176
+ // source (ideally 2). Throws E_THORNODE_QUOTE_UNAVAILABLE if no source
177
+ // responds, E_RATE_DRIFT if engine value is outside the slippage band
178
+ // around the node-quote median.
202
179
  export async function verifyThorchainQuote(input) {
203
180
  const timeoutMs = input.timeoutMs ?? VERIFY_FETCH_TIMEOUT_MS;
204
181
  const base = input.thornodeUrls ?? [
@@ -1 +1 @@
1
- {"version":3,"file":"thorchain.js","sourceRoot":"","sources":["../../src/verification/thorchain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thorchain.js","sourceRoot":"","sources":["../../src/verification/thorchain.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const SWAP_WASM_SHA256 = "2450ea115d826df77f6c021e9b120004fcb6fe7f7e1aa922cd1caab6e76817a3";
2
- export declare const KEYGEN_WASM_SHA256 = "2450ea115d826df77f6c021e9b120004fcb6fe7f7e1aa922cd1caab6e76817a3";
3
- export declare const MONERO_SWEEP_WASM_SHA256 = "2450ea115d826df77f6c021e9b120004fcb6fe7f7e1aa922cd1caab6e76817a3";
1
+ export declare const SWAP_WASM_SHA256 = "df3578008826998fcf76d02c2925a10a59b6b657d3f83d79edfcfc4ce9a980f3";
2
+ export declare const KEYGEN_WASM_SHA256 = "df3578008826998fcf76d02c2925a10a59b6b657d3f83d79edfcfc4ce9a980f3";
3
+ export declare const MONERO_SWEEP_WASM_SHA256 = "df3578008826998fcf76d02c2925a10a59b6b657d3f83d79edfcfc4ce9a980f3";
4
4
  //# sourceMappingURL=wasm-pins.d.ts.map
package/dist/wasm-pins.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* AUTO-GENERATED by scripts/pin-wasm.mjs — do not edit by hand. */
2
- export const SWAP_WASM_SHA256 = "2450ea115d826df77f6c021e9b120004fcb6fe7f7e1aa922cd1caab6e76817a3";
2
+ export const SWAP_WASM_SHA256 = "df3578008826998fcf76d02c2925a10a59b6b657d3f83d79edfcfc4ce9a980f3";
3
3
  /* Legacy aliases (removed in 0.4.0): */
4
4
  export const KEYGEN_WASM_SHA256 = SWAP_WASM_SHA256;
5
5
  export const MONERO_SWEEP_WASM_SHA256 = SWAP_WASM_SHA256;
@@ -1,27 +1,6 @@
1
1
  import { z } from 'zod';
2
- /**
3
- * Wire schemas for the real 1Click `/v0/status` response.
4
- *
5
- * Source-of-truth: 1Click OpenAPI v0.1.10 (`@defuse-protocol/one-click-sdk-typescript`)
6
- * cross-validated against live API captures stored in
7
- * `apps/swap-engine/tests/fixtures/oneclick/`. Any divergence here from the
8
- * real response will silently break verification — keep these in sync.
9
- *
10
- * Notable shape facts:
11
- * - Status enum has exactly 7 values. There is **no** NOT_FOUND or EXPIRED
12
- * sentinel — `NOT_FOUND` is signaled via HTTP 404, and post-deadline
13
- * expiry is computed against `quote.deadline`.
14
- * - Most user-visible fields (recipient, refundTo, depositAddress, deadline)
15
- * are **nested** under `quoteResponse.quoteRequest` / `quoteResponse.quote`
16
- * — not at the top level.
17
- * - `swapDetails.*Amount` fields are explicit `null` for not-yet-applicable
18
- * states (PENDING_DEPOSIT etc.) — `.nullish()` is required, not `.optional()`.
19
- * - The nested `quoteResponse.correlationId` is dropped on this nested copy
20
- * (the outer status response carries its own correlationId).
21
- */
22
2
  export declare const NearIntentStatusCode: z.ZodEnum<["KNOWN_DEPOSIT_TX", "PENDING_DEPOSIT", "INCOMPLETE_DEPOSIT", "PROCESSING", "SUCCESS", "REFUNDED", "FAILED"]>;
23
3
  export type NearIntentStatusCode = z.infer<typeof NearIntentStatusCode>;
24
- /** Raw shape returned by GET /v0/status. */
25
4
  export declare const NearIntentRawStatusSchema: z.ZodObject<{
26
5
  correlationId: z.ZodString;
27
6
  status: z.ZodEnum<["KNOWN_DEPOSIT_TX", "PENDING_DEPOSIT", "INCOMPLETE_DEPOSIT", "PROCESSING", "SUCCESS", "REFUNDED", "FAILED"]>;
@@ -324,12 +303,6 @@ export declare const NearIntentRawStatusSchema: z.ZodObject<{
324
303
  } | undefined;
325
304
  }>;
326
305
  export type NearIntentRawStatus = z.infer<typeof NearIntentRawStatusSchema>;
327
- /**
328
- * Flattened, callable-friendly view of an intent's status. Built from the
329
- * raw response by `fetchNearIntentStatus`. Holds the fields a verifier needs
330
- * to bind a swap to its claimed destination, refund, deadline, and amounts —
331
- * pulled out from the nested `quoteResponse.quoteRequest` / `quote` objects.
332
- */
333
306
  export interface NearIntentStatusResponse {
334
307
  readonly status: NearIntentStatusCode;
335
308
  readonly correlationId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"near-intents.zod.d.ts","sourceRoot":"","sources":["../../src/wire/near-intents.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,oBAAoB,yHAQ/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAyDxE,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAGD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC"}
1
+ {"version":3,"file":"near-intents.zod.d.ts","sourceRoot":"","sources":["../../src/wire/near-intents.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,oBAAoB,yHAQ/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAyDxE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAK5E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAGD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC"}
@@ -1,24 +1,17 @@
1
1
  import { z } from 'zod';
2
- /**
3
- * Wire schemas for the real 1Click `/v0/status` response.
4
- *
5
- * Source-of-truth: 1Click OpenAPI v0.1.10 (`@defuse-protocol/one-click-sdk-typescript`)
6
- * cross-validated against live API captures stored in
7
- * `apps/swap-engine/tests/fixtures/oneclick/`. Any divergence here from the
8
- * real response will silently break verification — keep these in sync.
9
- *
10
- * Notable shape facts:
11
- * - Status enum has exactly 7 values. There is **no** NOT_FOUND or EXPIRED
12
- * sentinel `NOT_FOUND` is signaled via HTTP 404, and post-deadline
13
- * expiry is computed against `quote.deadline`.
14
- * - Most user-visible fields (recipient, refundTo, depositAddress, deadline)
15
- * are **nested** under `quoteResponse.quoteRequest` / `quoteResponse.quote`
16
- * — not at the top level.
17
- * - `swapDetails.*Amount` fields are explicit `null` for not-yet-applicable
18
- * states (PENDING_DEPOSIT etc.) — `.nullish()` is required, not `.optional()`.
19
- * - The nested `quoteResponse.correlationId` is dropped on this nested copy
20
- * (the outer status response carries its own correlationId).
21
- */
2
+ // 1Click /v0/status. Source: 1Click OpenAPI v0.1.10 cross-validated against
3
+ // live captures in apps/swap-engine/tests/fixtures/oneclick/. Divergence here
4
+ // silently breaks verification — keep in sync.
5
+ //
6
+ // Shape facts:
7
+ // - 7-value status enum. No NOT_FOUND / EXPIRED 404 signals NOT_FOUND;
8
+ // expiry is computed against quote.deadline.
9
+ // - User-visible fields (recipient, refundTo, depositAddress, deadline)
10
+ // are nested under quoteResponse.quoteRequest / quoteResponse.quote.
11
+ // - swapDetails.*Amount is explicit null for not-yet-applicable states,
12
+ // so .nullish() (not .optional()).
13
+ // - Nested quoteResponse.correlationId dropped here; the top-level
14
+ // status response carries its own.
22
15
  export const NearIntentStatusCode = z.enum([
23
16
  'KNOWN_DEPOSIT_TX',
24
17
  'PENDING_DEPOSIT',
@@ -70,8 +63,7 @@ const QuoteSchema = z.object({
70
63
  timeEstimate: z.number().nonnegative(),
71
64
  refundFee: z.string().optional(),
72
65
  });
73
- // `correlationId` is dropped on the nested copy; everything else mirrors the
74
- // top-level QuoteResponse.
66
+ // Mirrors the top-level QuoteResponse (correlationId dropped on the nested copy).
75
67
  const NestedQuoteResponseSchema = z.object({
76
68
  correlationId: z.string().optional(),
77
69
  timestamp: z.string(),
@@ -79,7 +71,7 @@ const NestedQuoteResponseSchema = z.object({
79
71
  quoteRequest: z.record(z.string(), z.unknown()),
80
72
  quote: QuoteSchema,
81
73
  });
82
- /** Raw shape returned by GET /v0/status. */
74
+ // Raw shape returned by GET /v0/status.
83
75
  export const NearIntentRawStatusSchema = z.object({
84
76
  correlationId: z.string(),
85
77
  status: NearIntentStatusCode,
@@ -1 +1 @@
1
- {"version":3,"file":"near-intents.zod.js","sourceRoot":"","sources":["../../src/wire/near-intents.zod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"near-intents.zod.js","sourceRoot":"","sources":["../../src/wire/near-intents.zod.ts"],"names":[],"mappings":"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"}
@@ -214,11 +214,6 @@ export type SwapAction = z.infer<typeof swapActionBodySchema>;
214
214
  export declare const actionProtocolDataSchema: z.ZodUnion<[z.ZodObject<{
215
215
  txFullRefundEncsig: z.ZodNullable<z.ZodString>;
216
216
  txPartialRefundEncsig: z.ZodNullable<z.ZodString>;
217
- /**
218
- * Alice's plain ECDSA pre-sig on TxCancel. Optional on the wire so older
219
- * sidecar versions still validate; consumers must tolerate `null` here.
220
- * V-16 enabling-work — written into the recovery snapshot when present.
221
- */
222
217
  txCancelSig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
223
218
  txLockTxid: z.ZodNullable<z.ZodString>;
224
219
  txLockVout: z.ZodNullable<z.ZodNumber>;
@@ -589,11 +584,6 @@ export declare const swapActionResponseSchema: z.ZodObject<{
589
584
  protocolData: z.ZodNullable<z.ZodUnion<[z.ZodObject<{
590
585
  txFullRefundEncsig: z.ZodNullable<z.ZodString>;
591
586
  txPartialRefundEncsig: z.ZodNullable<z.ZodString>;
592
- /**
593
- * Alice's plain ECDSA pre-sig on TxCancel. Optional on the wire so older
594
- * sidecar versions still validate; consumers must tolerate `null` here.
595
- * V-16 enabling-work — written into the recovery snapshot when present.
596
- */
597
587
  txCancelSig: z.ZodOptional<z.ZodNullable<z.ZodString>>;
598
588
  txLockTxid: z.ZodNullable<z.ZodString>;
599
589
  txLockVout: z.ZodNullable<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"action.zod.d.ts","sourceRoot":"","sources":["../../../src/wire/server/action.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAyEpD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAY/B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAuF9D,eAAO,MAAM,wBAAwB;;;IAvDnC;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4DH,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE9E,eAAO,MAAM,wBAAwB;;;;;;;QAnEnC;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEH,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"action.zod.d.ts","sourceRoot":"","sources":["../../../src/wire/server/action.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAqEpD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAY/B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAqF9D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASnC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE9E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -25,15 +25,11 @@ const cancelActionBodySchema = z.object({
25
25
  type: z.literal('cancel'),
26
26
  reason: z.string().max(500).optional(),
27
27
  });
28
- // V-4: the legacy `refund` body shape carried Bob's private XMR scalar `s_b`
29
- // and (optionally) his Bitcoin secret `b`. The current refund flow is fully
30
- // client-side (`AtomicFlow.executeRefund` builds, signs, and broadcasts
31
- // TxFullRefund / TxPartialRefund directly via the BlockchainDataProvider),
32
- // then notifies the sidecar via the `notify-refund` body below — so there is
33
- // no legitimate caller of this schema. Removing it ensures
34
- // `swapActionBodySchema.parse(...)` rejects any attempt (UI bug, downstream
35
- // dependency, hostile sidecar requiredAction text) to ship private keys
36
- // through the wire.
28
+ // V-4: the legacy `refund` action body carried Bob's private XMR scalar s_b
29
+ // and optionally his Bitcoin secret b. Current refund flow is fully client-
30
+ // side (AtomicFlow.executeRefund builds + signs + broadcasts directly, then
31
+ // posts notify-refund). Schema removed so swapActionBodySchema.parse() will
32
+ // reject any attempt to ship private keys over the wire.
37
33
  const notifyRefundActionBodySchema = z.object({
38
34
  type: z.literal('notify-refund'),
39
35
  refund_txid: z.string().length(64),
@@ -107,11 +103,9 @@ const sweepConstructionDataSchema = z.object({
107
103
  const presigsProtocolDataSchema = z.object({
108
104
  txFullRefundEncsig: z.string().nullable(),
109
105
  txPartialRefundEncsig: z.string().nullable(),
110
- /**
111
- * Alice's plain ECDSA pre-sig on TxCancel. Optional on the wire so older
112
- * sidecar versions still validate; consumers must tolerate `null` here.
113
- * V-16 enabling-work — written into the recovery snapshot when present.
114
- */
106
+ // V-16 enabling-work: Alice's plain ECDSA pre-sig on TxCancel. Written
107
+ // into the recovery snapshot when present. Optional so older sidecars
108
+ // still validate; consumers must tolerate null.
115
109
  txCancelSig: z.string().nullable().optional(),
116
110
  txLockTxid: z.string().nullable(),
117
111
  txLockVout: z.number().int().nonnegative().nullable(),