@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,16 +1,10 @@
1
- /**
2
- * Main action loop: polls the server, inspects requiredAction, and performs
3
- * the appropriate client-side operation. Handles fund, encsig, sweep,
4
- * sidecar retries, and terminal states in one unified loop.
5
- */
1
+ // Main action loop: poll, inspect requiredAction, fund / encsig / sweep /
2
+ // retry / handle terminal states.
6
3
  import { sha256 } from '@noble/hashes/sha2.js';
7
4
  import { bytesToHex, hexToBytes } from '@noble/hashes/utils.js';
8
- // `crypto.randomUUID` is gated to secure contexts in some browser versions —
9
- // self-hosted miradex-web on plain HTTP (LAN IP, .local, onion) hits
10
- // "globalThis.crypto.randomUUID is not a function" before any swap code can
11
- // run. `crypto.getRandomValues` has no such restriction (it's the underlying
12
- // entropy primitive), so synthesise a v4 UUID from 16 random bytes when the
13
- // shortcut isn't available.
5
+ // crypto.randomUUID is gated to secure contexts in some browsers; self-hosted
6
+ // miradex-web on plain HTTP (LAN IP, .local, onion) hits "is not a function"
7
+ // before any swap code runs. crypto.getRandomValues has no such restriction.
14
8
  function randomUuidV4() {
15
9
  const c = globalThis.crypto;
16
10
  if (c?.randomUUID)
@@ -40,18 +34,14 @@ import { delay } from '../lib/delay.js';
40
34
  import { SwapCancelledError } from './types.js';
41
35
  import { extractProtocolData } from './extract.js';
42
36
  import { FUNDING_POLL_MS, FUNDING_SETTLE_MS, SWEEP_TIMEOUT_MS, MIN_XMR_CONFIRMATIONS as CFG_MIN_XMR_CONFIRMATIONS, } from '../lib/default-config.js';
43
- const POLL_MS = FUNDING_POLL_MS * 3; // driver polls less often than the UI deposit watcher
37
+ // Driver polls less often than the UI deposit watcher.
38
+ const POLL_MS = FUNDING_POLL_MS * 3;
44
39
  const TIMEOUT_MS = SWEEP_TIMEOUT_MS;
45
40
  const FUND_SETTLE_MS = FUNDING_SETTLE_MS;
46
41
  const MIN_XMR_CONFIRMATIONS = CFG_MIN_XMR_CONFIRMATIONS;
47
42
  const MAX_ENCSIG_FAILURES = 3;
48
- /**
49
- * Drive a created swap through every phase until a terminal state. The swap
50
- * must already exist on the server; callers are `runAtomicSwap` and
51
- * `resumeAtomicSwap`.
52
- *
53
- * @internal Not part of the stable public surface.
54
- */
43
+ // @internal Drive a server-created swap to a terminal state. Callers:
44
+ // runAtomicSwap, resumeAtomicSwap.
55
45
  export async function driveSwapToCompletion(options) {
56
46
  const { api, swapId, keystoreId, wallet: _wallet, deposit, keystore, network, onProgress, signal, logger: log, blockchain, saveProtocolSnapshot, loadProtocolSnapshot, makerPeerId, makerMultiaddrs, clientVersion, } = options;
57
47
  const deadline = Date.now() + TIMEOUT_MS;
@@ -62,12 +52,9 @@ export async function driveSwapToCompletion(options) {
62
52
  let encsigFailures = 0;
63
53
  let aliceDleqVerified = false;
64
54
  let xmrLockVerified = false;
65
- // Bail if the sidecar keeps rejecting /presigs with "no pending PSBT" /
66
- // "cannot perform presigs" while the swap is still pre-funding. That
67
- // pattern means the broker entry was consumed (or never armed) and we
68
- // can't progress without sidecar cooperation. Looping until TIMEOUT_MS
69
- // burns minutes and starves the failed-receipt restart UX, so cap the
70
- // retries explicitly.
55
+ // Cap retries on "no pending PSBT" / "cannot perform presigs": broker entry
56
+ // was consumed or never armed, we can't progress, and looping till
57
+ // TIMEOUT_MS just starves the failed-receipt restart UX.
71
58
  let presigsAlreadyDoneStreak = 0;
72
59
  const PRESIGS_ALREADY_DONE_MAX = 6;
73
60
  log.info({ swapId, network, deadline: new Date(deadline).toISOString() }, '[drive] loop started');
@@ -91,11 +78,9 @@ export async function driveSwapToCompletion(options) {
91
78
  const pastFunding = detail.status !== 'initializing'
92
79
  && detail.status !== 'awaiting_funding'
93
80
  && detail.status !== 'pending';
94
- // "Funding still pending" is now derived from the deposit address being
95
- // present and the swap being in a pre-deposit state. The legacy
96
- // top-level `pendingPsbt` field has been absorbed into the typed
97
- // atomicswap_parameters row (unsigned_lock_psbt) surfaced via
98
- // protocolData.params.
81
+ // "Funding still pending" derives from depositAddress + pre-deposit
82
+ // state; the legacy top-level pendingPsbt is now atomicswap_parameters
83
+ // .unsigned_lock_psbt under protocolData.params.
99
84
  const hasPending = !!detail.depositAddress && !pastFunding;
100
85
  if (pastFunding && !hasPending && fundedAt > 0 && Date.now() - fundedAt > FUND_SETTLE_MS) {
101
86
  await delay(POLL_MS, signal);
@@ -103,18 +88,15 @@ export async function driveSwapToCompletion(options) {
103
88
  }
104
89
  if (hasPending && fundedAt > 0)
105
90
  fundedAt = 0;
106
- // Lock address is always the primary deposit address (the scanner
107
- // overwrites this on every poll with the freshest value from the
108
- // sidecar; retry-with-new-maker updates it automatically).
91
+ // Lock address = primary deposit address. The scanner refreshes this
92
+ // each poll, so retry-with-new-maker updates it automatically.
109
93
  const lockAddress = detail.depositAddress;
110
94
  if (lockAddress && lockAddress !== lastFundedAddress) {
111
95
  if (!aliceDleqVerified) {
112
- // V-2: DLEQ verification is mandatory before broadcasting TxLock.
113
- // The proof binds S_a_bitcoin and S_a_monero to the same scalar; it
114
- // is the only thing that lets Bob recover s_a_xmr autonomously from
115
- // an on-chain TxRedeem signature if the sidecar later refuses to
116
- // hand back s_a. Skipping it (the previous fall-through on null /
117
- // missing) leaves Bob trusting the sidecar end-to-end for sweep.
96
+ // V-2: DLEQ check is mandatory before TxLock. The proof binds
97
+ // S_a_bitcoin and S_a_monero to the same scalar — without it Bob
98
+ // can't recover s_a_xmr from TxRedeem if the sidecar later refuses
99
+ // to hand back s_a, so sweep would be sidecar-trusted end-to-end.
118
100
  const pp = pdx.params;
119
101
  if (!pp?.dleq_proof_s_a) {
120
102
  log.debug({ swapId }, 'Alice DLEQ proof not yet available; awaiting protocol params');
@@ -142,8 +124,7 @@ export async function driveSwapToCompletion(options) {
142
124
  refundAddress: keystore.swap.refundAddress,
143
125
  toToken: 'XMR',
144
126
  amount: '',
145
- // lock_address is the top-level depositAddress; timelock_blocks
146
- // comes from the typed atomicswap params when present.
127
+ // lock_address = depositAddress; timelock_blocks from typed params.
147
128
  protocol: detail.depositAddress &&
148
129
  detail.protocolData?.type === 'atomicswap' &&
149
130
  detail.protocolData.params
@@ -166,11 +147,9 @@ export async function driveSwapToCompletion(options) {
166
147
  }
167
148
  const protocolParams = pdx.params;
168
149
  if (!protocolParams) {
169
- // The sidecar populates protocolData.depositAddress and
170
- // protocolData.protocolParams in separate writes. It's normal for
171
- // the client to see requiredAction=='fund' + a depositAddress
172
- // before protocolParams has landed. Wait and re-poll rather than
173
- // bail — the outer TIMEOUT_MS bounds the total wait.
150
+ // Sidecar writes depositAddress and protocolParams separately, so
151
+ // requiredAction='fund' + a depositAddress before protocolParams is
152
+ // a normal in-flight state. Re-poll; TIMEOUT_MS bounds the wait.
174
153
  log.debug({ swapId }, 'Fund requested but protocolParams not yet populated; waiting');
175
154
  onProgress({
176
155
  stage: 'signing_psbt',
@@ -195,8 +174,7 @@ export async function driveSwapToCompletion(options) {
195
174
  message: `Building lock tx to ${lockAddress.slice(0, 16)}`,
196
175
  swapId,
197
176
  });
198
- // Lock amount in sats derived from the swap's amountIn. The
199
- // legacy top-level pendingPsbt.amount was a 1:1 synthesis of this.
177
+ // Lock amount in sats from amountIn (1:1 with the legacy pendingPsbt.amount).
200
178
  const lockAmountSats = detail.amountIn
201
179
  ? Math.round(parseFloat(detail.amountIn) * 1e8)
202
180
  : undefined;
@@ -208,15 +186,13 @@ export async function driveSwapToCompletion(options) {
208
186
  utxoCount: utxoInputs.length,
209
187
  totalInputSats: utxoInputs.reduce((sum, u) => sum + u.value, 0),
210
188
  }, '[fund] Phase 1 — building unsigned lock PSBT');
211
- // Three-step lock-tx flow matching the Rust binary's order:
212
- // 1. Build UNSIGNED PSBT — that's what the sidecar puts on the wire
213
- // in Message2.
214
- // 2. Submit /presigs (unsigned PSBT + Bob's pre-sigs). Sidecar drives
215
- // Message2/3/4 with Alice and returns the encsig in the response.
216
- // 3. Snapshot to disk, then sign locally and submit /fund. The
217
- // broadcast only happens after the snapshot exists, so the client
218
- // can never end up with BTC on-chain and no autonomous-refund
219
- // material.
189
+ // Lock-tx flow (mirrors the Rust binary's ordering):
190
+ // 1. build UNSIGNED PSBT — what goes on the wire in Message2
191
+ // 2. POST /presigs (unsigned PSBT + Bob's pre-sigs). Sidecar drives
192
+ // Message2/3/4 with Alice and returns the encsig.
193
+ // 3. write snapshot, sign locally, POST /fund. Broadcast only after
194
+ // the snapshot exists, so we never end up with BTC on-chain and
195
+ // no autonomous-refund material.
220
196
  const unsigned = buildUnsignedFundingPsbt(_wallet, utxoInputs, lockAddress, network, lockAmountSats);
221
197
  log.info({ swapId, txid: unsigned.txid, vout: unsigned.vout, amountSats: unsigned.amountSats }, '[fund] Phase 1 — unsigned PSBT built');
222
198
  const signedPsbt = signFundingPsbt(unsigned.psbtBase64, _wallet, network);
@@ -234,13 +210,10 @@ export async function driveSwapToCompletion(options) {
234
210
  log.info({ swapId }, '[fund] Phase 1 — pre-sigs computed');
235
211
  onProgress({ stage: 'funding', message: 'Submitting pre-sigs (unsigned PSBT)', swapId });
236
212
  log.info({ swapId }, '[fund] Phase 2 — POST /presigs (unsigned PSBT + pre-sigs → awaiting Message3)');
237
- // If the sidecar already processed /presigs on a prior attempt (state
238
- // now past AWAITING_DEPOSIT with the encsig on protocolParams), skip
239
- // the call — it would 409 "no pending PSBT" because the sidecar is
240
- // waiting for /fund. Idempotent recovery from a schema-mismatch retry.
241
- // Either encsig counts: amnesty (Partial-only) swaps never get a
242
- // tx_full_refund_encsig, so gating on full alone would force a
243
- // re-attempt of /presigs that the sidecar would reject.
213
+ // Skip /presigs when the sidecar already processed it on a prior
214
+ // attempt (encsig on protocolParams, sidecar waiting for /fund)
215
+ // otherwise it 409s "no pending PSBT". Either encsig counts:
216
+ // Partial-only swaps never produce tx_full_refund_encsig.
244
217
  const alreadyHasEncsig = !!(protocolParams.tx_full_refund_encsig || protocolParams.tx_partial_refund_encsig) &&
245
218
  !!pdx.redeemDigestHex;
246
219
  let presigsResponse = null;
@@ -260,18 +233,15 @@ export async function driveSwapToCompletion(options) {
260
233
  }
261
234
  catch (err) {
262
235
  const msg = err instanceof Error ? err.message : String(err);
263
- // "No pending PSBT request" means the sidecar already drove past
264
- // the presigs step. Re-poll to pick up the encsig off status —
265
- // DO NOT retry /presigs (the sidecar is past that state).
236
+ // Sidecar already past /presigs. Re-poll for the encsig; do NOT
237
+ // retry /presigs.
266
238
  if (msg.includes('no pending PSBT') || msg.includes('cannot perform presigs')) {
267
239
  presigsAlreadyDoneStreak += 1;
268
240
  if (presigsAlreadyDoneStreak >= PRESIGS_ALREADY_DONE_MAX) {
269
- // The sidecar's PsbtBroker entry was consumed (or never
270
- // armed after a sidecar restart) and the next iteration of
271
- // /getSwapDetail still doesn't surface the encsig that
272
- // would let us skip /presigs. Bail to failed so the
273
- // failed-receipt restart UX takes over instead of
274
- // burning the rest of TIMEOUT_MS in a tight retry loop.
241
+ // Broker entry consumed (or never re-armed after sidecar
242
+ // restart) and /getSwapDetail still isn't surfacing the encsig
243
+ // that would let us skip /presigs. Bail to failed so the
244
+ // failed-receipt restart UX takes over.
275
245
  throw new ProtocolError('E_PRESIGS_WEDGED', `sidecar rejected /presigs ${presigsAlreadyDoneStreak} times with "${msg}" — swap is wedged (broker entry consumed but encsig never surfaced on /getSwapDetail)`);
276
246
  }
277
247
  log.warn({
@@ -292,8 +262,7 @@ export async function driveSwapToCompletion(options) {
292
262
  ? {
293
263
  txFullRefundEncsig: protocolParams.tx_full_refund_encsig ?? null,
294
264
  txPartialRefundEncsig: protocolParams.tx_partial_refund_encsig ?? null,
295
- // Resume / replay path: pull from the typed protocolParams that
296
- // the sidecar mirrored to /getSwapDetail.
265
+ // Resume/replay path: pull from /getSwapDetail's mirrored params.
297
266
  txCancelSig: protocolParams.tx_cancel_sig ?? null,
298
267
  txLockTxid: unsigned.txid,
299
268
  txLockVout: unsigned.vout,
@@ -306,20 +275,16 @@ export async function driveSwapToCompletion(options) {
306
275
  hasPartialEncsig: !!encsigData.txPartialRefundEncsig,
307
276
  txLockTxid: encsigData.txLockTxid,
308
277
  }, '[fund] Phase 2 — /presigs response received');
309
- // Refuse only when neither escape hatch is available. The sidecar
310
- // returns tx_full_refund_encsig for Legacy/Full variants and
311
- // tx_partial_refund_encsig (with the amnesty triple on protocolParams)
312
- // for Partial/Full variants. A Partial-only swap legitimately has
313
- // a null full encsig — its refund path is TxPartialRefund + TxReclaim.
278
+ // Refuse only when both escape hatches are missing. Partial-only swaps
279
+ // legitimately have a null full encsig (refund = TxPartialRefund +
280
+ // TxReclaim); Legacy/Full variants get tx_full_refund_encsig.
314
281
  if (!encsigData.txFullRefundEncsig && !encsigData.txPartialRefundEncsig) {
315
282
  throw new ProtocolError('E_ENCSIG_REFUND_MISSING', 'sidecar accepted /presigs but returned no refund encsig (neither tx_full_refund_encsig nor tx_partial_refund_encsig); refusing to fund without a refund escape hatch');
316
283
  }
317
284
  log.info({ swapId }, '[fund] Phase 3 — writing recovery snapshot before broadcast');
318
- // V-16 enabling-work: prefer the value the sidecar returned in the
319
- // /presigs response, fall back to whatever's already on
320
- // protocolParams (resume path), then null. Persisting it to the
321
- // snapshot is a no-op for the current sidecar-publishes-cancel flow,
322
- // but seeds future autonomous-cancel work with everything it needs.
285
+ // V-16 enabling-work: prefer the /presigs response, then on-disk
286
+ // protocolParams (resume), else null. No-op for the current
287
+ // sidecar-publishes-cancel flow; seeds autonomous-cancel work later.
323
288
  const aliceTxCancelSig = encsigData.txCancelSig ?? protocolParams.tx_cancel_sig ?? pdx.aliceTxCancelSig ?? null;
324
289
  await maybeWriteSnapshot({
325
290
  saveProtocolSnapshot,
@@ -347,13 +312,11 @@ export async function driveSwapToCompletion(options) {
347
312
  log.info({ swapId }, '[fund] Phase 3 — snapshot persisted');
348
313
  onProgress({ stage: 'funding', message: 'Submitting signed PSBT for broadcast', swapId });
349
314
  log.info({ swapId }, '[fund] Phase 4 — POST /fund (signed PSBT → broadcast)');
350
- // Retry /fund locally with backoff on the "broker not yet awaiting"
351
- // error. This should be rare since the sidecar now pre-arms the
352
- // broker in /presigs, but flaky networks or a re-entry from resume
353
- // can still produce a short window. Retrying /fund is cheap; looping
354
- // back to the top of drive() would rebuild the PSBT with a stale
355
- // lockAmountSats (pendingPsbt is gone after /presigs) and produce a
356
- // different txid — the sidecar would then reject it.
315
+ // Local backoff on "broker not yet awaiting". Rare (sidecar pre-arms
316
+ // in /presigs) but possible on flaky networks or resume re-entry.
317
+ // Looping back to drive() would rebuild the PSBT with a stale
318
+ // lockAmountSats (pendingPsbt is gone post-/presigs), giving a
319
+ // different txid that the sidecar would reject.
357
320
  let fundSucceeded = false;
358
321
  for (let attempt = 0; attempt < 6 && !fundSucceeded; attempt++) {
359
322
  try {
@@ -387,10 +350,9 @@ export async function driveSwapToCompletion(options) {
387
350
  onProgress({ stage: 'submit_encsig', message: 'Computing encrypted signature', swapId });
388
351
  const protocolParams = pdx.params;
389
352
  if (!protocolParams) {
390
- // Mirror of the fund-branch fix: the sidecar may briefly return
391
- // action='submit_encsig' before protocolParams is flushed into
392
- // provider_metadata. Wait and re-poll; the outer TIMEOUT_MS bounds
393
- // the total wait.
353
+ // Same race as the fund branch: action='submit_encsig' can arrive
354
+ // before protocolParams is flushed into provider_metadata. Re-poll;
355
+ // TIMEOUT_MS bounds the wait.
394
356
  log.debug({ swapId }, 'Submit-encsig requested but protocolParams not yet populated; waiting');
395
357
  onProgress({
396
358
  stage: 'submit_encsig',
@@ -457,16 +419,13 @@ export async function driveSwapToCompletion(options) {
457
419
  }
458
420
  xmrLockVerified = true;
459
421
  }
460
- // The sidecar no longer surfaces `redeemDigestHex` over the wire (see
461
- // extract.ts). When present we still compare byte-for-byte as defense in
462
- // depth; when absent we fall back to the local computation alone the
463
- // signed PSBT or on-chain TxLock is the authoritative source either way.
422
+ // sidecarDigestHex may be absent (sidecar stopped surfacing it; see
423
+ // extract.ts). When present we still byte-compare for defence-in-depth;
424
+ // either way the local digest from PSBT-or-on-chain-TxLock is authoritative.
464
425
  const sidecarDigestHex = pdx.redeemDigestHex;
465
- // AV-B.2: recompute the digest locally and (optionally) compare byte-for-byte before signing.
466
- // Fresh-fund path: reuse the signed PSBT we kept in memory.
467
- // Resume path: the PSBT is gone but TxLock is on-chain; fetch via the
468
- // injected blockchain provider and recompute from the raw tx. Either
469
- // path preserves the Fix 1 guarantee.
426
+ // AV-B.2: recompute locally before signing.
427
+ // Fresh-fund path: reuse the in-memory signed PSBT.
428
+ // Resume path: PSBT is gone, fetch raw TxLock via the injected provider.
470
429
  let localDigestHex;
471
430
  if (lastSignedPsbt) {
472
431
  localDigestHex = computeRedeemDigest({
@@ -582,12 +541,8 @@ export async function driveSwapToCompletion(options) {
582
541
  }
583
542
  throw new ProtocolError('E_DRIVE_TIMEOUT', 'swap timed out waiting for progress');
584
543
  }
585
- /**
586
- * Build a funding-proof payload (nonce + signature per UTXO) that the server
587
- * requires when creating a swap.
588
- *
589
- * @internal
590
- */
544
+ // @internal Funding-proof payload (nonce + sig per UTXO) the server requires
545
+ // at swap creation.
591
546
  export function createFundingProof(wallet, deposit) {
592
547
  const nonce = randomUuidV4();
593
548
  const msgHash = sha256(new TextEncoder().encode(`${nonce}${wallet.address}`));
@@ -1 +1 @@
1
- {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/atomic-swap/drive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drive.js","sourceRoot":"","sources":["../../src/atomic-swap/drive.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,kCAAkC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEhE,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,SAAS,YAAY;IACnB,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,UAAU;QAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;IACzC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,2DAA2D;IAC3D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AACnG,CAAC;AACD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAiD,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,IAAI,yBAAyB,GACnD,MAAM,0BAA0B,CAAC;AAElC,uDAAuD;AACvD,MAAM,OAAO,GAAG,eAAe,GAAG,CAAC,CAAC;AACpC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AACzC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AACxD,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,sEAAsE;AACtE,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAyB;IACnE,MAAM,EACJ,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EACpE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAC3C,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,eAAe,EAAE,aAAa,GAC5C,GAAG,OAAO,CAAC;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;IAEzC,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,mBAAmB,GAAG,KAAK,CAAC;IAChC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,4EAA4E;IAC5E,mEAAmE;IACnE,yDAAyD;IACzD,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,MAAM,wBAAwB,GAAG,CAAC,CAAC;IAEnC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAElG,IAAI,gBAAoC,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM,IAAI,kBAAkB,EAAE,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC;QAC3C,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EACzC,iCAAiC,CAClC,CAAC;YACF,gBAAgB,GAAG,MAAM,CAAC;QAC5B,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,iCAAiC,CAAC,CAAC;YAC/E,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,cAAc;mBAC/C,MAAM,CAAC,MAAM,KAAK,kBAAkB;mBACpC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;YACjC,oEAAoE;YACpE,uEAAuE;YACvE,iDAAiD;YACjD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC;YAE3D,IAAI,WAAW,IAAI,CAAC,UAAU,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,cAAc,EAAE,CAAC;gBACzF,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,IAAI,UAAU,IAAI,QAAQ,GAAG,CAAC;gBAAE,QAAQ,GAAG,CAAC,CAAC;YAE7C,qEAAqE;YACrE,+DAA+D;YAC/D,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;YAE1C,IAAI,WAAW,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;gBACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,8DAA8D;oBAC9D,iEAAiE;oBACjE,mEAAmE;oBACnE,kEAAkE;oBAClE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;oBACtB,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC;wBACxB,GAAG,CAAC,KAAK,CACP,EAAE,MAAM,EAAE,EACV,8DAA8D,CAC/D,CAAC;wBACF,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC7B,SAAS;oBACX,CAAC;oBACD,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;wBACtC,MAAM,IAAI,iBAAiB,CACzB,uBAAuB,EACvB,gIAAgI,CACjI,CAAC;oBACJ,CAAC;oBACD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,wCAAwC,CAAC,CAAC;oBAC/D,MAAM,UAAU,EAAE,CAAC;oBACnB,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;oBACpF,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,sCAAsC,CAAC,CAAC;wBAC9D,MAAM,IAAI,iBAAiB,CACzB,sBAAsB,EACtB,2FAA2F,CAC5F,CAAC;oBACJ,CAAC;oBACD,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;oBACzE,mBAAmB,GAAG,IAAI,CAAC;oBAC3B,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC;wBACpC,cAAc,EAAE,MAAM,CAAC,cAAc;wBACrC,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc;wBACzC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa;wBAC1C,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,EAAE;wBACV,oEAAoE;wBACpE,QAAQ,EACN,MAAM,CAAC,cAAc;4BACrB,MAAM,CAAC,YAAY,EAAE,IAAI,KAAK,YAAY;4BAC1C,MAAM,CAAC,YAAY,CAAC,MAAM;4BACxB,CAAC,CAAC;gCACE,YAAY,EAAE,MAAM,CAAC,cAAc;gCACnC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe;6BAC5D;4BACH,CAAC,CAAC,SAAS;wBACf,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc;qBAClD,CAAC,CAAC;oBACH,UAAU,CAAC;wBACT,KAAK,EAAE,cAAc;wBACrB,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB;wBAClE,MAAM;wBACN,YAAY,EAAE,EAAE;qBACjB,CAAC,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;wBACjB,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,EACnB,0DAA0D,CAC3D,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;gBAClC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,kEAAkE;oBAClE,oEAAoE;oBACpE,iEAAiE;oBACjE,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,8DAA8D,CAAC,CAAC;oBACtF,UAAU,CAAC;wBACT,KAAK,EAAE,cAAc;wBACrB,OAAO,EAAE,0CAA0C;wBACnD,MAAM;qBACP,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBACD,qEAAqE;gBACrE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;oBAC3C,IAAI,EAAE,cAAc,CAAC,CAAC;oBACtB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACrB,OAAO;iBACR,CAAC,CAAC;gBACH,IAAI,kBAAkB,KAAK,WAAW,EAAE,CAAC;oBACvC,GAAG,CAAC,KAAK,CACP,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAC/D,yDAAyD,CAC1D,CAAC;oBACF,MAAM,IAAI,iBAAiB,CACzB,sBAAsB,EACtB,gEAAgE,CACjE,CAAC;gBACJ,CAAC;gBAED,UAAU,CAAC;oBACT,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,uBAAuB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC1D,MAAM;iBACP,CAAC,CAAC;gBAEH,8EAA8E;gBAC9E,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ;oBACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;oBAC/C,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,GAAG,CAAC,IAAI,CACN;oBACE,MAAM;oBACN,WAAW;oBACX,cAAc;oBACd,SAAS,EAAE,UAAU,CAAC,MAAM;oBAC5B,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;iBAChE,EACD,8CAA8C,CAC/C,CAAC;gBAEF,qDAAqD;gBACrD,+DAA+D;gBAC/D,sEAAsE;gBACtE,uDAAuD;gBACvD,sEAAsE;gBACtE,qEAAqE;gBACrE,sCAAsC;gBACtC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;gBACrG,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,EACrF,sCAAsC,CACvC,CAAC;gBAEF,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC1E,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,uDAAuD,CAAC,CAAC;gBAE9E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrD,MAAM,IAAI,aAAa,CACrB,2BAA2B,EAC3B,kEAAkE,CACnE,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,cAAc,CAAC;oBAC7B,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACrB,gBAAgB,EAAE,UAAU;oBAC5B,cAAc;oBACd,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa;oBAC1C,OAAO;iBACR,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,oCAAoC,CAAC,CAAC;gBAE3D,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,qCAAqC,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzF,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,EACV,+EAA+E,CAChF,CAAC;gBAEF,iEAAiE;gBACjE,kEAAkE;gBAClE,6DAA6D;gBAC7D,0DAA0D;gBAC1D,MAAM,gBAAgB,GACpB,CAAC,CAAC,CAAC,cAAc,CAAC,qBAAqB,IAAI,cAAc,CAAC,wBAAwB,CAAC;oBACnF,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;gBACxB,IAAI,eAAe,GAAY,IAAI,CAAC;gBACpC,IAAI,gBAAgB,EAAE,CAAC;oBACrB,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,EACV,0FAA0F,CAC3F,CAAC;oBACF,wBAAwB,GAAG,CAAC,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,eAAe,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE;4BAChD,IAAI,EAAE,SAAS;4BACf,YAAY,EAAE,QAAQ,CAAC,UAAU;4BACjC,aAAa,EAAE,WAAW;4BAC1B,OAAO;yBACR,CAAC,CAAC;wBACH,wBAAwB,GAAG,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC7D,gEAAgE;wBAChE,kBAAkB;wBAClB,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;4BAC9E,wBAAwB,IAAI,CAAC,CAAC;4BAC9B,IAAI,wBAAwB,IAAI,wBAAwB,EAAE,CAAC;gCACzD,yDAAyD;gCACzD,+DAA+D;gCAC/D,yDAAyD;gCACzD,wCAAwC;gCACxC,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,6BAA6B,wBAAwB,gBAAgB,GAAG,wFAAwF,CACjK,CAAC;4BACJ,CAAC;4BACD,GAAG,CAAC,IAAI,CACN;gCACE,MAAM;gCACN,KAAK,EAAE,GAAG;gCACV,MAAM,EAAE,wBAAwB;gCAChC,GAAG,EAAE,wBAAwB;6BAC9B,EACD,6FAA6F,CAC9F,CAAC;4BACF,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;4BAC7B,SAAS;wBACX,CAAC;wBACD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,qDAAqD,CAAC,CAAC;wBACxF,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC7B,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,MAAM,UAAU,GAAG,gBAAgB;oBACjC,CAAC,CAAC;wBACE,kBAAkB,EAAE,cAAc,CAAC,qBAAqB,IAAI,IAAI;wBAChE,qBAAqB,EAAE,cAAc,CAAC,wBAAwB,IAAI,IAAI;wBACtE,kEAAkE;wBAClE,WAAW,EAAE,cAAc,CAAC,aAAa,IAAI,IAAI;wBACjD,UAAU,EAAE,QAAQ,CAAC,IAAI;wBACzB,UAAU,EAAE,QAAQ,CAAC,IAAI;wBACzB,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;qBAC9C;oBACH,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;gBAC1C,GAAG,CAAC,IAAI,CACN;oBACE,MAAM;oBACN,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,kBAAkB;oBAC9C,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAAC,qBAAqB;oBACpD,UAAU,EAAE,UAAU,CAAC,UAAU;iBAClC,EACD,6CAA6C,CAC9C,CAAC;gBAEF,uEAAuE;gBACvE,mEAAmE;gBACnE,8DAA8D;gBAC9D,IAAI,CAAC,UAAU,CAAC,kBAAkB,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;oBACxE,MAAM,IAAI,aAAa,CACrB,yBAAyB,EACzB,sKAAsK,CACvK,CAAC;gBACJ,CAAC;gBAED,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,6DAA6D,CAAC,CAAC;gBACpF,iEAAiE;gBACjE,4DAA4D;gBAC5D,qEAAqE;gBACrE,MAAM,gBAAgB,GACpB,UAAU,CAAC,WAAW,IAAI,cAAc,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC;gBACzF,MAAM,kBAAkB,CAAC;oBACvB,oBAAoB;oBACpB,oBAAoB;oBACpB,MAAM;oBACN,cAAc,EAAE,MAAM,CAAC,UAAU;oBACjC,UAAU;oBACV,OAAO;oBACP,aAAa;oBACb,kBAAkB,EAAE,QAAQ,CAAC,UAAU;oBACvC,WAAW;oBACX,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;oBACxD,QAAQ,EAAE,UAAU,CAAC,UAAU,IAAI,QAAQ,CAAC,IAAI;oBAChD,cAAc,EAAE,UAAU,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC1E,cAAc;oBACd,UAAU,EAAE,UAAU,CAAC,kBAAkB;oBACzC,aAAa,EAAE,UAAU,CAAC,qBAAqB;oBAC/C,gBAAgB;oBAChB,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,WAAW;oBAC3C,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,eAAe;oBACvD,eAAe,EAAE,GAAG,CAAC,eAAe;oBACpC,qBAAqB,EAAE,MAAM,CAAC,MAAM;oBACpC,GAAG;iBACJ,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,qCAAqC,CAAC,CAAC;gBAE5D,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,sCAAsC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1F,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,uDAAuD,CAAC,CAAC;gBAE9E,qEAAqE;gBACrE,kEAAkE;gBAClE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,gDAAgD;gBAChD,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;oBAC/D,IAAI,CAAC;wBACH,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;wBAC9D,iBAAiB,GAAG,WAAW,CAAC;wBAChC,cAAc,GAAG,UAAU,CAAC;wBAC5B,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBACtB,aAAa,GAAG,IAAI,CAAC;wBACrB,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,wCAAwC,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC9F,CAAC;oBAAC,OAAO,GAAY,EAAE,CAAC;wBACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC7D,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;wBAClE,IAAI,CAAC,cAAc,EAAE,CAAC;4BACpB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,2CAA2C,CAAC,CAAC;4BACvF,MAAM;wBACR,CAAC;wBACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;wBACrD,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,EAC9B,6CAA6C,CAC9C,CAAC;wBACF,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,4EAA4E,CAAC,CAAC;gBACrG,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;YAC/B,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,+BAA+B,EAAE,MAAM,EAAE,CAAC,CAAC;YAEzF,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,kEAAkE;gBAClE,oEAAoE;gBACpE,8BAA8B;gBAC9B,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,uEAAuE,CAAC,CAAC;gBAC/F,UAAU,CAAC;oBACT,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,0CAA0C;oBACnD,MAAM;iBACP,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC;gBACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,wCAAwC,EAAE,MAAM,EAAE,CAAC,CAAC;oBAClG,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBAED,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,mCAAmC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7F,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBAEzF,8CAA8C;gBAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC;gBACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;gBACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrB,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,gDAAgD,CAAC,CAAC;oBACxE,MAAM,IAAI,aAAa,CACrB,sBAAsB,EACtB,oFAAoF,CACrF,CAAC;gBACJ,CAAC;gBACD,MAAM,gBAAgB,GAAG,UAAU,CACjC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CACzD,CAAC;gBAEF,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC;oBACvC,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC,OAAO;oBAChD,UAAU,EAAE,QAAQ,CAAC,iBAAiB;oBACtC,WAAW,EAAE,gBAAgB;oBAC7B,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;oBAChD,gBAAgB,EAAE,qBAAqB;oBACvC,QAAQ,EAAE,QAAQ,CAAC,mBAAmB,CAAC,MAAM,IAAI,SAAS;oBAC1D,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;gBAEH,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACzB,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;wBACzB,UAAU,CAAC;4BACT,KAAK,EAAE,eAAe;4BACtB,OAAO,EAAE,kCAAkC,UAAU,CAAC,MAAM,IAAI,SAAS,EAAE;4BAC3E,MAAM;yBACP,CAAC,CAAC;wBACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC7B,SAAS;oBACX,CAAC;oBACD,GAAG,CAAC,KAAK,CACP;wBACE,MAAM;wBACN,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,aAAa,EAAE,UAAU,CAAC,aAAa;wBACvC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,OAAO;wBAC5C,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,MAAM;wBAC1C,WAAW,EAAE,QAAQ,CAAC,mBAAmB;wBACzC,YAAY,EAAE,QAAQ,CAAC,eAAe;wBACtC,OAAO,EAAE,QAAQ,CAAC,iBAAiB;wBACnC,gBAAgB;qBACjB,EACD,8BAA8B,CAC/B,CAAC;oBACF,UAAU,CAAC;wBACT,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,4BAA4B,UAAU,CAAC,MAAM,IAAI,SAAS,EAAE;wBACrE,MAAM;qBACP,CAAC,CAAC;oBACH,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,EACnB,UAAU,CAAC,MAAM,IAAI,8BAA8B,CACpD,CAAC;gBACJ,CAAC;gBAED,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAED,oEAAoE;YACpE,wEAAwE;YACxE,6EAA6E;YAC7E,MAAM,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC;YAC7C,4CAA4C;YAC5C,oDAAoD;YACpD,yEAAyE;YACzE,IAAI,cAAsB,CAAC;YAC3B,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,GAAG,mBAAmB,CAAC;oBACnC,gBAAgB,EAAE,cAAc;oBAChC,cAAc;oBACd,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACxB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,IAAI,aAAa,CACrB,kBAAkB,EAClB,0EAA0E,CAC3E,CAAC;gBACJ,CAAC;gBACD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,UAAU,CAAC;wBACT,KAAK,EAAE,eAAe;wBACtB,OAAO,EAAE,0CAA0C;wBACnD,MAAM;qBACP,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBACD,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBACpE,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,UAAU,CAAC;wBACT,KAAK,EAAE,eAAe;wBACtB,OAAO,EAAE,0CAA0C;wBACnD,MAAM;qBACP,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBACD,GAAG,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,EACzD,iEAAiE,CAClE,CAAC;gBACF,cAAc,GAAG,4BAA4B,CAAC;oBAC5C,YAAY;oBACZ,cAAc;oBACd,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACxB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YACD,GAAG,CAAC,IAAI,CACN;gBACE,MAAM;gBACN,cAAc;gBACd,gBAAgB;gBAChB,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB;aAC3D,EACD,gBAAgB;gBACd,CAAC,CAAC,qDAAqD;gBACvD,CAAC,CAAC,qDAAqD,CAC1D,CAAC;YACF,IAAI,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBAChF,GAAG,CAAC,KAAK,CACP,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAC5C,oDAAoD,CACrD,CAAC;gBACF,MAAM,IAAI,iBAAiB,CACzB,0BAA0B,EAC1B,4CAA4C,CAC7C,CAAC;YACJ,CAAC;YACD,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAElG,UAAU,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,gCAAgC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC7F,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,uCAAuC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9F,cAAc,GAAG,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,cAAc,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,0BAA0B,CAAC,CAAC;gBACtF,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;oBAC1C,MAAM,IAAI,aAAa,CACrB,wBAAwB,EACxB,4BAA4B,MAAM,CAAC,mBAAmB,CAAC,WAAW,GAAG,EAAE,CACxE,CAAC;gBACJ,CAAC;gBACD,UAAU,CAAC;oBACT,KAAK,EAAE,YAAY;oBACnB,OAAO,EAAE,gBAAgB,MAAM,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,GAAG,EAAE;oBACxF,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACtD,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YACtB,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CACrB,2BAA2B,EAC3B,8CAA8C,CAC/C,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;YACnE,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;gBACzC,MAAM;gBACN,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc;gBAC5C,gBAAgB,EAAE,EAAE,CAAC,UAAU;gBAC/B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;YACH,UAAU,CAAC;gBACT,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,mBAAmB,WAAW,CAAC,MAAM,EAAE;gBAChD,MAAM;gBACN,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/C,UAAU,CAAC;gBACT,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,IAAI,WAAW,MAAM,EAAE;gBAC9D,MAAM;aACP,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,UAAU,CAAC;YACT,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,IAAI,WAAW,MAAM,CAAC,MAAM,EAAE;YACrE,MAAM;SACP,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,qCAAqC,CAAC,CAAC;AACpF,CAAC;AAED,6EAA6E;AAC7E,oBAAoB;AACpB,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,OAAwB;IAExB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAiC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK;QACL,SAAS;KACV,CAAC,CAAC,CAAC;IACJ,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAYD,SAAS,oBAAoB,CAAC,QAAiB;IAC7C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,CAAC,GAAG,QAA+C,CAAC;IAC1D,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAClE,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,CAAC,YAAuC,CAAC;IACrD,OAAO;QACL,kBAAkB,EAAE,OAAO,EAAE,CAAC,oBAAoB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;QAClG,qBAAqB,EACnB,OAAO,EAAE,CAAC,uBAAuB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI;QACtF,WAAW,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7E,UAAU,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1E,UAAU,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1E,gBAAgB,EACd,OAAO,EAAE,CAAC,kBAAkB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI;KAC7E,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;QACL,kBAAkB,EAAE,IAAI;QACxB,qBAAqB,EAAE,IAAI;QAC3B,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;QAChB,gBAAgB,EAAE,IAAI;KACvB,CAAC;AACJ,CAAC;AA6BD,KAAK,UAAU,kBAAkB,CAAC,KAA8B;IAC9D,IAAI,CAAC,KAAK,CAAC,oBAAoB;QAAE,OAAO;IAExC,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAClF,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,oCAAoC,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,CAAC;IAChC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACrC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,iBAAiB,EAAE,KAAK,CAAC,aAAa,IAAI,SAAS;QACnD,iBAAiB,EAAE,IAAI,CAAC,GAAG,EAAE;QAC7B,cAAc,EAAE;YACd,CAAC,EAAE,EAAE,CAAC,CAAC;YACP,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;YAC/B,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI;YACnB,eAAe,EAAE,EAAE,CAAC,eAAe;YACnC,eAAe,EAAE,EAAE,CAAC,eAAe;YACnC,yBAAyB,EAAE,EAAE,CAAC,yBAAyB,IAAI,IAAI;YAC/D,cAAc,EAAE,EAAE,CAAC,cAAc;YACjC,cAAc,EAAE,EAAE,CAAC,cAAc;YACjC,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC;YACjD,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC;YACjD,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC;YACjD,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC;YACjD,mBAAmB,EACjB,EAAE,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9E,0BAA0B,EACxB,EAAE,CAAC,0BAA0B,KAAK,SAAS,IAAI,EAAE,CAAC,0BAA0B,KAAK,IAAI;gBACnF,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC;gBACvC,CAAC,CAAC,IAAI;YACV,mBAAmB,EACjB,EAAE,CAAC,mBAAmB,KAAK,SAAS,IAAI,EAAE,CAAC,mBAAmB,KAAK,IAAI;gBACrE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC;gBAChC,CAAC,CAAC,IAAI;YACV,oBAAoB,EAClB,EAAE,CAAC,oBAAoB,KAAK,SAAS,IAAI,EAAE,CAAC,oBAAoB,KAAK,IAAI;gBACvE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC;gBACjC,CAAC,CAAC,IAAI;YACV,iBAAiB,EACf,EAAE,CAAC,iBAAiB,KAAK,SAAS,IAAI,EAAE,CAAC,iBAAiB,KAAK,IAAI;gBACjE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC;gBAC9B,CAAC,CAAC,IAAI;YACV,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,IAAI,IAAI;YACnD,eAAe,EAAE,EAAE,CAAC,eAAe,IAAI,GAAG;YAC1C,qBAAqB,EAAE,KAAK,CAAC,UAAU;YACvC,wBAAwB,EAAE,KAAK,CAAC,aAAa;YAC7C,aAAa,EAAE,KAAK,CAAC,gBAAgB;SACtC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B;QACD,KAAK,EAAE;YACL,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;YAC/B,UAAU,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;SACxC;QACD,KAAK,EAAE;YACL,8BAA8B,EAAE,KAAK,CAAC,eAAe,EAAE,qBAAqB,IAAI,IAAI;YACpF,iBAAiB,EAAE,KAAK,CAAC,eAAe,EAAE,mBAAmB,IAAI,IAAI;YACrE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;SACnD;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClF,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACvG,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACnF,MAAM,IAAI,aAAa,CACrB,yBAAyB,EACzB,+DAA+D,GAAG,EAAE,CACrE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,16 +1,4 @@
1
- /**
2
- * Centralised protocol-data extraction for the atomic-swap driver.
3
- *
4
- * Reads the typed discriminated-union `SwapDetail.protocolData`. All fields
5
- * the driver needs (protocol params, unsigned PSBT, Monero lock verification)
6
- * live inside the atomicswap variant's `params` object.
7
- */
8
1
  import type { SwapDetail, ProtocolParams } from '../types/index.js';
9
- /**
10
- * XMR lock verification shape matching the legacy `xmrVerification` wrapper.
11
- * Kept as a type for downstream consumers (e.g., atomic-flow's snapshot
12
- * builder) that expect the `lock_transfer_proof.{tx_hash, tx_key}` shape.
13
- */
14
2
  export interface XmrVerificationData {
15
3
  readonly lock_transfer_proof: {
16
4
  readonly tx_hash: string;
@@ -29,18 +17,7 @@ export interface ExtractedProtocolData {
29
17
  readonly xmrVerification: XmrVerificationData | null;
30
18
  readonly makerPeerId: string | null;
31
19
  readonly makerMultiaddrs: ReadonlyArray<string> | null;
32
- /**
33
- * Alice's plain ECDSA pre-sig on TxCancel (Message3). Threaded through to
34
- * the recovery snapshot before /fund. Null when the sidecar has not yet
35
- * surfaced it — the client tolerates absence and falls back to relying on
36
- * the sidecar's TxCancel publish path. V-16 enabling-work.
37
- */
38
20
  readonly aliceTxCancelSig: string | null;
39
21
  }
40
- /**
41
- * Pull every protocol-data field the driver uses out of a `SwapDetail`.
42
- * Missing / malformed fields come back as `null` so the caller can branch
43
- * cleanly.
44
- */
45
22
  export declare function extractProtocolData(detail: SwapDetail): ExtractedProtocolData;
46
23
  //# sourceMappingURL=extract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/atomic-swap/extract.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,mBAAmB,EAAE;QAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACvD;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,qBAAqB,CAoD7E"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/atomic-swap/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,mBAAmB,EAAE;QAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,eAAe,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAIvD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,qBAAqB,CA+C7E"}
@@ -1,8 +1,3 @@
1
- /**
2
- * Pull every protocol-data field the driver uses out of a `SwapDetail`.
3
- * Missing / malformed fields come back as `null` so the caller can branch
4
- * cleanly.
5
- */
6
1
  export function extractProtocolData(detail) {
7
2
  const pd = detail.protocolData;
8
3
  if (!pd || pd.type !== 'atomicswap' || !pd.params) {
@@ -18,7 +13,7 @@ export function extractProtocolData(detail) {
18
13
  };
19
14
  }
20
15
  const params = pd.params;
21
- // Reconstruct the XMR verification wrapper shape from typed params fields.
16
+ // Rebuild the legacy xmrVerification wrapper from the typed params.
22
17
  const xmrVerification = params.monero_tx_hash && params.monero_lock_address && params.xmr_amount_pico
23
18
  ? {
24
19
  lock_transfer_proof: {
@@ -33,22 +28,17 @@ export function extractProtocolData(detail) {
33
28
  : null;
34
29
  return {
35
30
  params,
36
- // Sidecar's BIP143 redeem digest, flattened from provider_metadata onto
37
- // atomicswap_parameters and surfaced on the wire. The driver still
38
- // computes the digest locally; this field enables byte-for-byte comparison
39
- // before releasing the encrypted signature.
31
+ // Sidecar's BIP143 redeem digest. Driver recomputes locally and
32
+ // byte-compares before releasing the encrypted signature.
40
33
  redeemDigestHex: params.tx_redeem_digest ?? null,
41
- // `lock_address` at the wire level is the `depositAddress` on SwapDetail.
34
+ // lock_address on the wire is depositAddress on SwapDetail.
42
35
  lockAddress: detail.depositAddress ?? null,
43
36
  timelockBlocks: params.cancel_timelock,
44
37
  xmrVerification,
45
- // Maker identity, surfaced through protocolData so the recovery snapshot
46
- // includes the libp2p hints eigenwallet needs to re-dial.
38
+ // libp2p hints eigenwallet needs to re-dial during cross-binary recovery.
47
39
  makerPeerId: params.maker_peer_id ?? null,
48
40
  makerMultiaddrs: params.maker_multiaddrs ?? null,
49
- // V-16 enabling-work: Alice's TxCancel pre-sig if the sidecar has surfaced
50
- // it. Null until Message3 has propagated through the chain
51
- // (eigenwallet sidecar → swap-engine → crypto-server → here).
41
+ // Null until Message3 has propagated sidecar -> swap-engine -> server.
52
42
  aliceTxCancelSig: params.tx_cancel_sig ?? null,
53
43
  };
54
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/atomic-swap/extract.ts"],"names":[],"mappings":"AA0CA;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAkB;IACpD,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;IAC/B,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAClD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,MAAwB,CAAC;IAE3C,2EAA2E;IAC3E,MAAM,eAAe,GACnB,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,eAAe;QAC3E,CAAC,CAAC;YACE,mBAAmB,EAAE;gBACnB,OAAO,EAAE,MAAM,CAAC,cAAc;gBAC9B,MAAM,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;aACrC;YACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;YACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,SAAS;SACjE;QACH,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO;QACL,MAAM;QACN,wEAAwE;QACxE,mEAAmE;QACnE,2EAA2E;QAC3E,4CAA4C;QAC5C,eAAe,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;QAChD,0EAA0E;QAC1E,WAAW,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;QAC1C,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,eAAe;QACf,yEAAyE;QACzE,0DAA0D;QAC1D,WAAW,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;QACzC,eAAe,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;QAChD,2EAA2E;QAC3E,2DAA2D;QAC3D,8DAA8D;QAC9D,gBAAgB,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;KAC/C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/atomic-swap/extract.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,mBAAmB,CAAC,MAAkB;IACpD,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;IAC/B,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAClD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,MAAwB,CAAC;IAE3C,oEAAoE;IACpE,MAAM,eAAe,GACnB,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,eAAe;QAC3E,CAAC,CAAC;YACE,mBAAmB,EAAE;gBACnB,OAAO,EAAE,MAAM,CAAC,cAAc;gBAC9B,MAAM,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;aACrC;YACD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;YACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,SAAS;SACjE;QACH,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO;QACL,MAAM;QACN,gEAAgE;QAChE,0DAA0D;QAC1D,eAAe,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;QAChD,4DAA4D;QAC5D,WAAW,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;QAC1C,cAAc,EAAE,MAAM,CAAC,eAAe;QACtC,eAAe;QACf,0EAA0E;QAC1E,WAAW,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;QACzC,eAAe,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;QAChD,uEAAuE;QACvE,gBAAgB,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,10 +1,3 @@
1
- /**
2
- * Public barrel for the BTC↔XMR atomic-swap module.
3
- *
4
- * Reading order for contributors: `types.ts` → `run.ts` → `drive.ts` →
5
- * `verify.ts` → `presign.ts` → `monero-sweep/index.ts`. See §E.10 of the
6
- * production spec for the full walkthrough.
7
- */
8
1
  export { runAtomicSwap, resumeAtomicSwap, } from './run.js';
9
2
  export { submitEncsigWhenReady } from './submit-encsig.js';
10
3
  export { buildMultisigWitnessScript, computePreSigs, computeRedeemDigest, deriveLockAddress, } from './presign.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/atomic-swap/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/atomic-swap/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -1,10 +1,4 @@
1
- /**
2
- * Public barrel for the BTC↔XMR atomic-swap module.
3
- *
4
- * Reading order for contributors: `types.ts` → `run.ts` → `drive.ts` →
5
- * `verify.ts` → `presign.ts` → `monero-sweep/index.ts`. See §E.10 of the
6
- * production spec for the full walkthrough.
7
- */
1
+ // Reading order: types.ts, run.ts, drive.ts, presign.ts, monero-sweep/index.ts.
8
2
  export { runAtomicSwap, resumeAtomicSwap, } from './run.js';
9
3
  export { submitEncsigWhenReady } from './submit-encsig.js';
10
4
  export { buildMultisigWitnessScript, computePreSigs, computeRedeemDigest, deriveLockAddress, } from './presign.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/atomic-swap/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/atomic-swap/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EACL,aAAa,EACb,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EACL,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/errors.ts"],"names":[],"mappings":"AAuCA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG9D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/errors.ts"],"names":[],"mappings":"AAwBA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG9D"}
@@ -1,23 +1,8 @@
1
- /**
2
- * Retry classification for the sweep path. Patterns matched here cause
3
- * `sweepMonero` to re-run the scan decoys → sign → broadcast loop with a
4
- * fresh ring.
5
- *
6
- * Two classes of error are retryable:
7
- *
8
- * 1. **Transient transport** — `fetch failed`, `timeout`, multi-node
9
- * exhaustion, HTTP 5xx. These resolve when the upstream node recovers
10
- * or another node is reached.
11
- *
12
- * 2. **Daemon-rejected `invalid_input` / `failed` flags** — monerod sets
13
- * these when a ring member is locked, has torsion, or fails the
14
- * key-image quorum check. Re-rolling the ring (which our retry path
15
- * does) typically fixes the next attempt.
16
- *
17
- * Permanent client-side errors (commitment mismatch, schema invalid,
18
- * verification failures) deliberately stay non-retryable — they will never
19
- * resolve by re-trying with a different ring.
20
- */
1
+ // Retry classifier for sweepMonero. Two classes count as retryable:
2
+ // 1. transient transport (fetch/timeout/5xx/multi-node exhaustion)
3
+ // 2. monerod invalid_input / failed (locked ring member, torsion, key-image
4
+ // quorum) - a fresh ring typically resolves these
5
+ // Commitment / schema / verification errors stay non-retryable.
21
6
  const RETRYABLE_PATTERNS = [
22
7
  'fetch failed',
23
8
  'terminated',