@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 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,kBAAkB,GAAsB;IAC5C,cAAc;IACd,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,SAAS;IACT,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/errors.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,qEAAqE;AACrE,8EAA8E;AAC9E,uDAAuD;AACvD,gEAAgE;AAChE,MAAM,kBAAkB,GAAsB;IAC5C,cAAc;IACd,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,SAAS;IACT,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -4,22 +4,9 @@ export interface SweepParams {
4
4
  readonly swapId: string;
5
5
  readonly s_b: Uint8Array;
6
6
  readonly receiveAddress: string;
7
- /**
8
- * Alice's 32-byte ed25519 public spend key (hex), used to prove sidecar
9
- * honesty: `s_a * G == S_a_monero` must hold before sweep begins (Fix 3 /
10
- * AV-invariant C.5).
11
- */
12
7
  readonly expectedSAMonero: string;
13
8
  /** Override the monerod nodes used for RPC calls. */
14
9
  readonly monerodNodes?: readonly string[];
15
- /**
16
- * Override the unlock window passed to the gamma decoy picker. Defaults
17
- * to wallet2's `DEFAULT_LOCK_WINDOW` of 10 blocks, which matches mainnet
18
- * behaviour and lets the post-pick `unlocked` validation re-roll the rare
19
- * locked-coinbase decoy. Set to 60 (`CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW`)
20
- * on chains where every output is a coinbase (regtest, freshly-bootstrapped
21
- * testnets) so the picker stays entirely inside the unlocked region.
22
- */
23
10
  readonly unlockWindowBlocks?: number;
24
11
  readonly onProgress?: (stage: string, detail?: string) => void;
25
12
  readonly logger?: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAiEpD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAuBD,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA+H3F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA8DpD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAGhC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAI1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAqBD,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA4H3F"}
@@ -1,15 +1,6 @@
1
- /**
2
- * Monero sweep protocol for atomic swaps fully client-side.
3
- *
4
- * After the maker redeems BTC, the server reveals s_a (its key share).
5
- * This module combines s_a + s_b to derive the full Monero spend key,
6
- * fetches the lock transaction directly from public monerod nodes,
7
- * selects decoys, builds construction data, signs via WASM, and
8
- * broadcasts the raw transaction — all without server involvement
9
- * beyond the initial key share retrieval.
10
- *
11
- * The private key s_b never leaves this process.
12
- */
1
+ // XMR sweep, fully client-side. Server gives us s_a after Alice redeems BTC;
2
+ // we combine s_a + s_b for the spend key, scan + decoy + sign + broadcast
3
+ // against a public monerod quorum. s_b never leaves the process.
13
4
  import { Point } from '@noble/ed25519';
14
5
  import { bytesToHex } from '@noble/hashes/utils.js';
15
6
  import { noopLogger } from '../../interfaces/logger.js';
@@ -21,10 +12,7 @@ import { ensureWasm, deriveKeyImages, signSweepTx, selectDecoys, computeCommitme
21
12
  import { verifySweepTx } from '../../lib/monero/verify-sweep.js';
22
13
  import { scanTransactionOutputs, hexToScalar } from '../../lib/monero/output-scanner.js';
23
14
  import { fetchTransaction, fetchOutputKeys, fetchOutputDistribution, fetchFeeEstimate, broadcastTransaction, MAINNET_NODES, STAGENET_NODES, } from '../../lib/monero/rpc.js';
24
- /**
25
- * Normalise both the snake_case (s_a_hex) and camelCase (sAHex) shapes the
26
- * sidecar may emit into one strongly-typed record. Unknown fields are dropped.
27
- */
15
+ // Sidecar emits both snake_case and camelCase; pick whichever is present.
28
16
  function parseSweepOutputs(pd) {
29
17
  if (!pd || typeof pd !== 'object') {
30
18
  return { sAHex: undefined, vHex: undefined, lockTxHash: undefined, lockAddress: undefined, serverReceiveAddr: undefined };
@@ -49,19 +37,17 @@ function parseSweepOutputs(pd) {
49
37
  const SWEEP_SYNC_TIMEOUT_MS = 120_000;
50
38
  const SWEEP_RETRY_INTERVAL_MS = 15_000;
51
39
  const SWEEP_ACTION_TIMEOUT_MS = 120_000;
52
- /** Max attempts for the full sweep (scan → decoys → sign → broadcast).
53
- * Retries cover transient monerod failures and intermittent `invalid_input`
54
- * caused by unlucky decoy selection. */
40
+ // Covers transient monerod failures and intermittent invalid_input from
41
+ // unlucky decoy selection.
55
42
  const SWEEP_MAX_ATTEMPTS = 15;
56
- /** Backoff between sweep retries (doubles each attempt, capped at 60s). */
43
+ // Doubles per attempt, capped at 60s.
57
44
  const SWEEP_RETRY_BASE_MS = 5_000;
58
- /** Estimated tx size for fee calculation (1-in/2-out CLSAG + BP+, ring size 16).
59
- * Measured from actual signed transactions: ~3200 bytes. */
45
+ // 1-in/2-out CLSAG + BP+, ring size 16. Measured ~3200 bytes from real txs.
60
46
  const ESTIMATED_TX_SIZE = 3200;
61
- /** Fallback fee per byte if get_fee_estimate RPC is unavailable.
62
- * Uses the Monero default normal priority from cryptonote_config.h. */
47
+ // Monero "normal" priority default from cryptonote_config.h; used when
48
+ // get_fee_estimate RPC is unavailable.
63
49
  const FALLBACK_FEE_PER_BYTE = 23_000;
64
- /** Ring size for CLSAG + Bulletproofs+ (current Monero network). */
50
+ // CLSAG + BP+ on current mainnet.
65
51
  const RING_SIZE = 16;
66
52
  import { validateRingMembers } from './ring-select.js';
67
53
  import { isRetryableSweepError } from './errors.js';
@@ -103,9 +89,8 @@ export async function sweepMonero(api, params) {
103
89
  throw new Error('Receive address mismatch — keystore and server disagree on XMR destination');
104
90
  }
105
91
  const s_a = hexToBytes(sAHex);
106
- // AV-invariant C.5: the sidecar's s_a must multiply to S_a_monero before
107
- // we combine it with s_b. Wrong s_a signs the sweep with a wrong key and
108
- // silently produces a tx that cannot spend the joint output.
92
+ // AV-C.5: sidecar's s_a must multiply to S_a_monero before we combine with
93
+ // s_b. Wrong s_a silently signs an unspendable sweep.
109
94
  {
110
95
  const s_aScalar = bytesToBigInt(s_a);
111
96
  const s_aPoint = Point.BASE.multiply(s_aScalar);
@@ -124,7 +109,6 @@ export async function sweepMonero(api, params) {
124
109
  const spendPubScalar = hexToScalar(spendKeyHex);
125
110
  const spendPub = Point.BASE.multiply(spendPubScalar);
126
111
  const spendPubHex = bytesToHex(spendPub.toBytes());
127
- // Detect network from lock address prefix
128
112
  const isMainnet = lockAddress.startsWith('4');
129
113
  const monerodConfig = {
130
114
  nodes: params.monerodNodes ?? (isMainnet ? [...MAINNET_NODES] : [...STAGENET_NODES]),
@@ -137,8 +121,7 @@ export async function sweepMonero(api, params) {
137
121
  network: isMainnet ? 'mainnet' : 'stagenet',
138
122
  nodeCount: monerodConfig.nodes.length,
139
123
  }, 'Sweep step 1 complete: keys received, scanning lock tx');
140
- // Retry on transient network errors and intermittent `invalid_input`
141
- // (caused by unlucky decoy selection on stagenet).
124
+ // Retry transient network failures and the unlucky-decoy invalid_input.
142
125
  let lastSweepError;
143
126
  for (let attempt = 0; attempt < SWEEP_MAX_ATTEMPTS; attempt++) {
144
127
  try {
@@ -167,8 +150,7 @@ export async function sweepMonero(api, params) {
167
150
  }
168
151
  throw lastSweepError ?? new Error('Sweep failed after all attempts');
169
152
  }
170
- /** Errors that warrant a retry (network failures + intermittent daemon rejections). */
171
- /** Steps 2–5: fetch lock tx → select decoys → sign → broadcast. */
153
+ // Steps 2-5: fetch lock tx, select decoys, sign, broadcast.
172
154
  async function sweepScanSignBroadcast(ctx) {
173
155
  const { swapId, monerodConfig, lockTxHash, viewKeyHex, spendKeyHex, spendPubHex, receiveAddress, api, log, onProgress, unlockWindowBlocks, } = ctx;
174
156
  const buildDecoyInput = (distribution) => JSON.stringify(unlockWindowBlocks === undefined
@@ -209,10 +191,9 @@ async function sweepScanSignBroadcast(ctx) {
209
191
  }, 'Sweep step 2 complete: real output found');
210
192
  onProgress?.('Selecting decoys...');
211
193
  log.info({ swapId }, 'Sweep step 3: selecting decoys via WASM');
212
- // Fetch cumulative output distribution for gamma selection
213
194
  const distribution = await fetchOutputDistribution(monerodConfig);
214
195
  log.info({ swapId, distributionLen: distribution.length }, 'Output distribution fetched');
215
- // Select decoys via WASM (gamma distribution matching wallet2)
196
+ // wallet2-matching gamma decoy selection in WASM.
216
197
  const decoyResultJson = selectDecoys(realOutput.globalOutputIndex, buildDecoyInput(distribution), RING_SIZE);
217
198
  const decoyResult = JSON.parse(decoyResultJson);
218
199
  log.info({
@@ -221,15 +202,12 @@ async function sweepScanSignBroadcast(ctx) {
221
202
  realIndexInRing: decoyResult.real_index_in_ring,
222
203
  firstIndices: decoyResult.indices.slice(0, 4).map(String),
223
204
  }, 'Decoys selected');
224
- // Fetch ring member public keys + commitments from monerod, validating
225
- // each candidate ring is usable for CLSAG (reject torsion/identity keys
226
- // matches monero-oxide wallet2 select_n). On invalid ring, re-pick decoys
227
- // and retry. Bumped from 5 50 because regtest's auto-miner constantly
228
- // produces immature coinbase outputs at the chain tip; the gamma decoy
229
- // distribution is recency-biased so a fresh draw can land 2-5 immature
230
- // members per ring. Each retry is one monerod RPC + WASM decoy re-pick
231
- // (~5ms), so 50 attempts per outer call is still under a second. Mainnet
232
- // chains rarely need more than a couple of retries.
205
+ // Fetch ring members from monerod, validate (reject torsion/identity per
206
+ // wallet2 select_n), re-pick on any invalid slot. Cap is 50 because
207
+ // regtest's auto-miner spits out immature coinbase outputs at the chain
208
+ // tip and the gamma picker is recency-biased a fresh draw can land
209
+ // several immature members per ring. ~5ms per retry, so 50 stays under 1s.
210
+ // Mainnet rarely needs more than a few.
233
211
  onProgress?.('Fetching ring member keys...');
234
212
  const MAX_RING_RETRIES = 50;
235
213
  let currentDecoyResult = decoyResult;
@@ -254,7 +232,7 @@ async function sweepScanSignBroadcast(ctx) {
254
232
  }
255
233
  const finalDecoyResult = currentDecoyResult;
256
234
  log.info({ swapId, ringMemberCount: ringMemberKeys.length }, 'Ring member keys fetched (all valid)');
257
- // Verify our commitment matches on-chain (debug check)
235
+ // Sanity-check our commitment against on-chain.
258
236
  const realRingMember = ringMemberKeys[finalDecoyResult.real_index_in_ring];
259
237
  if (realRingMember) {
260
238
  const commitmentMatch = verifyCommitment(viewKeyHex, realOutput.txPublicKey, realOutput.outputIndex, realOutput.amount, realRingMember.mask);
@@ -272,7 +250,7 @@ async function sweepScanSignBroadcast(ctx) {
272
250
  'The sweep transaction would be rejected.');
273
251
  }
274
252
  }
275
- // Get fee estimate from monerod (adjusts based on mempool, like Feather wallet)
253
+ // Mempool-adjusted fee from monerod (Feather wallet does the same).
276
254
  let feePerByte = FALLBACK_FEE_PER_BYTE;
277
255
  let quantizationMask = 10_000;
278
256
  try {
@@ -284,7 +262,6 @@ async function sweepScanSignBroadcast(ctx) {
284
262
  catch (err) {
285
263
  log.warn({ swapId, error: err instanceof Error ? err.message : String(err) }, 'Fee estimate failed, using fallback');
286
264
  }
287
- // Fee = fee_per_byte * estimated_tx_size, rounded up to quantization mask
288
265
  let networkFee = feePerByte * ESTIMATED_TX_SIZE;
289
266
  if (quantizationMask > 0) {
290
267
  networkFee = Math.ceil(networkFee / quantizationMask) * quantizationMask;
@@ -345,14 +322,13 @@ async function sweepScanSignBroadcast(ctx) {
345
322
  fee: verification.fee,
346
323
  amountXmr: (Number(BigInt(verification.amount)) / 1e12).toFixed(12),
347
324
  }, 'Sweep tx verified — signing via WASM');
348
- // Derive key images (needed internally by sign_sweep_tx)
325
+ // sign_sweep_tx needs key images precomputed.
349
326
  onProgress?.('Signing sweep transaction...');
350
327
  const keyImagesJson = deriveKeyImages(JSON.stringify([structuredOutput]), viewKeyHex, spendKeyHex);
351
328
  log.debug({ swapId, keyImagesJson: keyImagesJson.slice(0, 60) + '...' }, 'Key images derived');
352
- // Sign
353
329
  const rawTxHex = signSweepTx(JSON.stringify(constructionData), spendKeyHex, viewKeyHex);
354
330
  log.info({ swapId, rawTxLen: rawTxHex.length, rawTxPrefix: rawTxHex.slice(0, 32) + '...' }, 'Transaction signed');
355
- // Diagnostic: dump full construction data for debugging invalid_input
331
+ // Dump full construction data so an invalid_input rejection is debuggable.
356
332
  log.info({
357
333
  swapId,
358
334
  realOutput: {
@@ -371,22 +347,20 @@ async function sweepScanSignBroadcast(ctx) {
371
347
  fee: constructionData.fee,
372
348
  destinationAmount: constructionData.destination.amount,
373
349
  }, 'Sweep diagnostic: full construction data');
374
- // Dump the full signed tx for external decoding if broadcast fails
350
+ // Full signed tx, in case broadcast fails and someone wants to decode it.
375
351
  log.debug({ swapId, rawTxHex }, 'Full signed transaction hex');
376
352
  onProgress?.('Broadcasting sweep transaction...');
377
353
  log.info({ swapId }, 'Sweep step 5: broadcasting to monerod');
378
354
  const broadcastResult = await broadcastTransaction(monerodConfig, rawTxHex);
379
355
  if (broadcastResult.alreadySpent) {
380
- // Key image already used we must have broadcast this in a previous attempt.
381
- // Only we have the spend key, so this is our own prior transaction.
356
+ // Key image is ours (only we hold the spend key); we already broadcast.
382
357
  log.info({ swapId }, 'Sweep tx already broadcast (double_spend) — prior attempt succeeded');
383
358
  }
384
359
  else {
385
360
  log.info({ swapId, txHash: broadcastResult.txHash, status: broadcastResult.status }, 'Sweep tx broadcast to network');
386
361
  }
387
- // Notify server that sweep is complete. This updates the DB status to
388
- // 'completed' so the poll loop stops triggering duplicate sweep attempts.
389
- // Retry a few times — without this the swap stays in 'sending' forever.
362
+ // Notify server so the DB status flips to 'completed' and the poll loop
363
+ // stops triggering duplicate sweeps. Without it the swap stays in 'sending'.
390
364
  const sweepTxHash = broadcastResult.txHash || `sweep-${swapId}`;
391
365
  for (let notifyAttempt = 0; notifyAttempt < 3; notifyAttempt++) {
392
366
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/index.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,5 @@ export interface InvalidRingMember {
4
4
  readonly ringIndex: number;
5
5
  readonly reason: string;
6
6
  }
7
- /**
8
- * Validate a ring's output keys, commitment points, and unlock state.
9
- * Returns the indices that must be replaced before signing.
10
- */
11
7
  export declare function validateRingMembers(members: readonly OutputKeyInfo[], log: Logger): InvalidRingMember[];
12
8
  //# sourceMappingURL=ring-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ring-select.d.ts","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/ring-select.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,GAAG,EAAE,MAAM,GACV,iBAAiB,EAAE,CA0CrB"}
1
+ {"version":3,"file":"ring-select.d.ts","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/ring-select.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAKD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,GAAG,EAAE,MAAM,GACV,iBAAiB,EAAE,CA0CrB"}
@@ -1,26 +1,14 @@
1
- /**
2
- * Ring-member validation for CLSAG signing.
3
- *
4
- * Each ring member must satisfy three conditions before we sign with it:
5
- * 1. The output public key decompresses to a valid ed25519 point and is
6
- * not the identity.
7
- * 2. The Pedersen commitment decompresses to a valid ed25519 point.
8
- * 3. The output is *unlocked* — monerod returns `unlocked: false` for
9
- * coinbase outputs that have not yet cleared their 60-block lock window
10
- * (`CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW`) or RingCT outputs younger
11
- * than `DEFAULT_TX_SPENDABLE_AGE` blocks.
12
- *
13
- * Picking a locked ring member is the most common cause of a daemon
14
- * `[flags: invalid_input]` rejection at broadcast time. wallet2 catches this
15
- * via `get_outs.unlocked`; we do the same here, then re-roll the entire ring
16
- * if any slot is invalid.
17
- */
1
+ // CLSAG ring-member validation:
2
+ // 1. output pubkey decompresses to a valid non-identity ed25519 point
3
+ // 2. Pedersen commitment decompresses to a valid ed25519 point
4
+ // 3. output is unlocked (coinbase past CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW
5
+ // = 60, RingCT past DEFAULT_TX_SPENDABLE_AGE)
6
+ // Picking a locked member is the most common monerod [flags: invalid_input]
7
+ // rejection; wallet2 catches it via get_outs.unlocked, we mirror that and
8
+ // re-roll on any invalid slot.
18
9
  import { Point } from '@noble/ed25519';
19
10
  const IDENTITY_HEX = '01' + '00'.repeat(31);
20
- /**
21
- * Validate a ring's output keys, commitment points, and unlock state.
22
- * Returns the indices that must be replaced before signing.
23
- */
11
+ // Returns the indices that must be replaced before signing.
24
12
  export function validateRingMembers(members, log) {
25
13
  const invalid = [];
26
14
  for (let i = 0; i < members.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"ring-select.js","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/ring-select.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AASvC,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAiC,EACjC,GAAW;IAEX,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,MAAM,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,mCAAmC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;aACpE,CAAC,CAAC;YACH,SAAS;QACX,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAClD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"ring-select.js","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/ring-select.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,wEAAwE;AACxE,iEAAiE;AACjE,8EAA8E;AAC9E,mDAAmD;AACnD,4EAA4E;AAC5E,0EAA0E;AAC1E,+BAA+B;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AASvC,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5C,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB,CACjC,OAAiC,EACjC,GAAW;IAEX,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,MAAM,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,mCAAmC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;aACpE,CAAC,CAAC;YACH,SAAS;QACX,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAClD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,16 +1,3 @@
1
- /**
2
- * Client-side pre-signing for non-custodial atomic swaps.
3
- *
4
- * Constructs the same Bitcoin transactions (TxCancel, TxPunish, TxEarlyRefund,
5
- * TxRedeem) that the Rust sidecar builds, computes their BIP143 segwit sighashes,
6
- * and signs them with Bob's secret key `b` — all client-side. The server never
7
- * sees `b`.
8
- *
9
- * The miniscript `c:and_v(v:pk(A),pk_k(B))` compiles to:
10
- * <A> OP_CHECKSIGVERIFY <B> OP_CHECKSIG
11
- *
12
- * This is the witness script for the 2-of-2 P2WSH used in TxLock and TxCancel.
13
- */
14
1
  import type { ProtocolParams, PreSigs, FeePolicy, AmnestyPolicy, DustPolicy } from '../types/index.js';
15
2
  export type NetworkName = 'mainnet' | 'testnet' | 'regtest' | 'regtest';
16
3
  export interface ComputePreSigsParams {
@@ -31,49 +18,13 @@ export interface ComputeRedeemDigestParams {
31
18
  readonly feePolicy?: FeePolicy;
32
19
  readonly dustPolicy?: DustPolicy;
33
20
  }
34
- /**
35
- * Derive the canonical 2-of-2 P2WSH lock address from Alice's and Bob's
36
- * compressed secp256k1 public keys. Callers must compare this against any
37
- * sidecar-claimed lock address before signing.
38
- *
39
- * @param params.aHex Alice's 33-byte compressed secp256k1 public key (hex).
40
- * @param params.bHex Bob's 33-byte compressed secp256k1 public key (hex).
41
- * @param params.network `'mainnet'` or `'testnet'`; selects the bech32 HRP.
42
- * @returns The bech32 P2WSH address derived from `(A, B)`.
43
- * @throws {VerificationError} `E_LOCK_SCRIPT` if p2wsh derivation fails.
44
- * @security Closes AV-B.1 / AV-C.1 — always prefer this over a sidecar-supplied address.
45
- */
46
21
  export declare function deriveLockAddress(params: {
47
22
  readonly aHex: string;
48
23
  readonly bHex: string;
49
24
  readonly network: NetworkName;
50
25
  }): string;
51
- /**
52
- * Build the 2-of-2 witness script: <A> OP_CHECKSIGVERIFY <B> OP_CHECKSIG
53
- *
54
- * This matches the Rust miniscript `c:and_v(v:pk(A),pk_k(B))`.
55
- * A and B are 33-byte compressed secp256k1 public keys (hex).
56
- */
57
26
  export declare function buildMultisigWitnessScript(aHex: string, bHex: string): Buffer;
58
- /**
59
- * Compute the 3 pre-signatures (TxCancel, TxPunish, TxEarlyRefund) for a client-side swap.
60
- *
61
- * These are standard ECDSA signatures that the sidecar sends to Alice in Message4.
62
- * The TxRedeem encrypted signature is computed separately (requires WASM adaptor crypto).
63
- *
64
- * @param params - All parameters needed for pre-signature computation
65
- * @returns 3 hex-encoded compact ECDSA signatures (64 bytes each)
66
- */
67
27
  export declare function computePreSigs(params: ComputePreSigsParams): PreSigs;
68
- /**
69
- * Compute the TxRedeem BIP143 sighash digest.
70
- *
71
- * The client uses this digest with WASM `encsign_digest(b, S_a_bitcoin, digest)`
72
- * to produce the adaptor-encrypted signature for Alice.
73
- *
74
- * @param params - All parameters needed for redeem digest computation
75
- * @returns Hex-encoded sighash (32 bytes)
76
- */
77
28
  export declare function computeRedeemDigest(params: ComputeRedeemDigestParams): string;
78
29
  export interface ComputeRedeemDigestFromTxHexParams {
79
30
  readonly lockTxRawHex: string;
@@ -83,19 +34,5 @@ export interface ComputeRedeemDigestFromTxHexParams {
83
34
  readonly feePolicy?: FeePolicy;
84
35
  readonly dustPolicy?: DustPolicy;
85
36
  }
86
- /**
87
- * Recompute the TxRedeem BIP143 sighash from a raw, already-broadcast TxLock
88
- * rather than a signed PSBT. Used on the resume path: when the driver comes
89
- * up after a restart, `signedPsbtBase64` is no longer in memory, but the
90
- * lock tx is permanently on-chain and any `BlockchainDataProvider` can
91
- * return its raw hex.
92
- *
93
- * Produces a byte-identical digest to `computeRedeemDigest` for the same
94
- * underlying transaction.
95
- *
96
- * @security Preserves Fix 1 / AV-B.2 guarantees on resume — the digest is
97
- * still derived independently from chain data; the caller CT-compares the
98
- * result against the sidecar's claimed digest.
99
- */
100
37
  export declare function computeRedeemDigestFromTxHex(params: ComputeRedeemDigestFromTxHexParams): string;
101
38
  //# sourceMappingURL=presign.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presign.d.ts","sourceRoot":"","sources":["../../src/atomic-swap/presign.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkBvG,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAUxE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAuED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B,GAAG,MAAM,CAQT;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAc7E;AA+DD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CA0PpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,CAa7E;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kCAAkC,GACzC,MAAM,CAUR"}
1
+ {"version":3,"file":"presign.d.ts","sourceRoot":"","sources":["../../src/atomic-swap/presign.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAkBvG,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAUxE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAsED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B,GAAG,MAAM,CAQT;AAID,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAc7E;AAwDD,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAwPpE;AAID,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,MAAM,CAa7E;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAMD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kCAAkC,GACzC,MAAM,CAUR"}