@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.
- package/README.md +57 -292
- package/dist/address/base58.d.ts.map +1 -1
- package/dist/address/base58.js +1 -2
- package/dist/address/base58.js.map +1 -1
- package/dist/address/bech32.d.ts +0 -8
- package/dist/address/bech32.d.ts.map +1 -1
- package/dist/address/bech32.js +3 -9
- package/dist/address/bech32.js.map +1 -1
- package/dist/address/evm.d.ts.map +1 -1
- package/dist/address/evm.js +1 -2
- package/dist/address/evm.js.map +1 -1
- package/dist/address/index.d.ts +0 -6
- package/dist/address/index.d.ts.map +1 -1
- package/dist/address/index.js +6 -9
- package/dist/address/index.js.map +1 -1
- package/dist/address/monero.d.ts +0 -10
- package/dist/address/monero.d.ts.map +1 -1
- package/dist/address/monero.js +4 -10
- package/dist/address/monero.js.map +1 -1
- package/dist/address/polkadot.d.ts +0 -5
- package/dist/address/polkadot.d.ts.map +1 -1
- package/dist/address/polkadot.js +2 -6
- package/dist/address/polkadot.js.map +1 -1
- package/dist/address/ton.d.ts +0 -6
- package/dist/address/ton.d.ts.map +1 -1
- package/dist/address/ton.js +3 -8
- package/dist/address/ton.js.map +1 -1
- package/dist/api/index.d.ts +0 -19
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +18 -37
- package/dist/api/index.js.map +1 -1
- package/dist/atomic-swap/drive.d.ts +0 -13
- package/dist/atomic-swap/drive.d.ts.map +1 -1
- package/dist/atomic-swap/drive.js +66 -111
- package/dist/atomic-swap/drive.js.map +1 -1
- package/dist/atomic-swap/extract.d.ts +0 -23
- package/dist/atomic-swap/extract.d.ts.map +1 -1
- package/dist/atomic-swap/extract.js +6 -16
- package/dist/atomic-swap/extract.js.map +1 -1
- package/dist/atomic-swap/index.d.ts +0 -7
- package/dist/atomic-swap/index.d.ts.map +1 -1
- package/dist/atomic-swap/index.js +1 -7
- package/dist/atomic-swap/index.js.map +1 -1
- package/dist/atomic-swap/monero-sweep/errors.d.ts.map +1 -1
- package/dist/atomic-swap/monero-sweep/errors.js +5 -20
- package/dist/atomic-swap/monero-sweep/errors.js.map +1 -1
- package/dist/atomic-swap/monero-sweep/index.d.ts +0 -13
- package/dist/atomic-swap/monero-sweep/index.d.ts.map +1 -1
- package/dist/atomic-swap/monero-sweep/index.js +30 -56
- package/dist/atomic-swap/monero-sweep/index.js.map +1 -1
- package/dist/atomic-swap/monero-sweep/ring-select.d.ts +0 -4
- package/dist/atomic-swap/monero-sweep/ring-select.d.ts.map +1 -1
- package/dist/atomic-swap/monero-sweep/ring-select.js +9 -21
- package/dist/atomic-swap/monero-sweep/ring-select.js.map +1 -1
- package/dist/atomic-swap/presign.d.ts +0 -63
- package/dist/atomic-swap/presign.d.ts.map +1 -1
- package/dist/atomic-swap/presign.js +30 -90
- package/dist/atomic-swap/presign.js.map +1 -1
- package/dist/atomic-swap/refund.d.ts +0 -18
- package/dist/atomic-swap/refund.d.ts.map +1 -1
- package/dist/atomic-swap/refund.js +16 -32
- package/dist/atomic-swap/refund.js.map +1 -1
- package/dist/atomic-swap/run.d.ts +0 -17
- package/dist/atomic-swap/run.d.ts.map +1 -1
- package/dist/atomic-swap/run.js +11 -25
- package/dist/atomic-swap/run.js.map +1 -1
- package/dist/atomic-swap/snapshot.d.ts +0 -30
- package/dist/atomic-swap/snapshot.d.ts.map +1 -1
- package/dist/atomic-swap/snapshot.js +8 -23
- package/dist/atomic-swap/snapshot.js.map +1 -1
- package/dist/atomic-swap/submit-encsig.d.ts +0 -7
- package/dist/atomic-swap/submit-encsig.d.ts.map +1 -1
- package/dist/atomic-swap/submit-encsig.js +2 -11
- package/dist/atomic-swap/submit-encsig.js.map +1 -1
- package/dist/atomic-swap/types.d.ts +2 -55
- package/dist/atomic-swap/types.d.ts.map +1 -1
- package/dist/atomic-swap/types.js +2 -3
- package/dist/atomic-swap/types.js.map +1 -1
- package/dist/blockchain/quorum-provider.d.ts +0 -15
- package/dist/blockchain/quorum-provider.d.ts.map +1 -1
- package/dist/blockchain/quorum-provider.js +7 -9
- package/dist/blockchain/quorum-provider.js.map +1 -1
- package/dist/cooperative-redeem.d.ts +5 -14
- package/dist/cooperative-redeem.d.ts.map +1 -1
- package/dist/cooperative-redeem.js +3 -20
- package/dist/cooperative-redeem.js.map +1 -1
- package/dist/engine/blockchain-querier.d.ts +0 -22
- package/dist/engine/blockchain-querier.d.ts.map +1 -1
- package/dist/engine/engine-state.d.ts +0 -8
- package/dist/engine/engine-state.d.ts.map +1 -1
- package/dist/engine/engine-state.js.map +1 -1
- package/dist/engine/flow-context.d.ts +0 -20
- package/dist/engine/flow-context.d.ts.map +1 -1
- package/dist/engine/flow-context.js +17 -41
- package/dist/engine/flow-context.js.map +1 -1
- package/dist/engine/flows/atomic-flow.d.ts +0 -28
- package/dist/engine/flows/atomic-flow.d.ts.map +1 -1
- package/dist/engine/flows/atomic-flow.js +64 -121
- package/dist/engine/flows/atomic-flow.js.map +1 -1
- package/dist/engine/flows/swap-flow.d.ts +0 -19
- package/dist/engine/flows/swap-flow.d.ts.map +1 -1
- package/dist/engine/flows/swap-flow.js +41 -83
- package/dist/engine/flows/swap-flow.js.map +1 -1
- package/dist/engine/miradex-engine.d.ts +1 -62
- package/dist/engine/miradex-engine.d.ts.map +1 -1
- package/dist/engine/miradex-engine.js +18 -50
- package/dist/engine/miradex-engine.js.map +1 -1
- package/dist/engine/pipeline.d.ts +0 -11
- package/dist/engine/pipeline.d.ts.map +1 -1
- package/dist/engine/pipeline.js +9 -21
- package/dist/engine/pipeline.js.map +1 -1
- package/dist/engine/platform.d.ts +0 -160
- package/dist/engine/platform.d.ts.map +1 -1
- package/dist/engine/platform.js +2 -0
- package/dist/engine/platform.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -11
- package/dist/index.js.map +1 -1
- package/dist/interfaces/blockchain.d.ts +1 -13
- package/dist/interfaces/blockchain.d.ts.map +1 -1
- package/dist/interfaces/blockchain.js +1 -0
- package/dist/interfaces/blockchain.js.map +1 -1
- package/dist/interfaces/logger.d.ts +0 -6
- package/dist/interfaces/logger.d.ts.map +1 -1
- package/dist/interfaces/logger.js.map +1 -1
- package/dist/lib/bitcoin/deposit-watcher.d.ts +0 -23
- package/dist/lib/bitcoin/deposit-watcher.d.ts.map +1 -1
- package/dist/lib/bitcoin/deposit-watcher.js +7 -31
- package/dist/lib/bitcoin/deposit-watcher.js.map +1 -1
- package/dist/lib/bitcoin/script-hash.d.ts.map +1 -1
- package/dist/lib/bitcoin/script-hash.js +2 -6
- package/dist/lib/bitcoin/script-hash.js.map +1 -1
- package/dist/lib/bitcoin/sweep.d.ts +0 -30
- package/dist/lib/bitcoin/sweep.d.ts.map +1 -1
- package/dist/lib/bitcoin/sweep.js +11 -40
- package/dist/lib/bitcoin/sweep.js.map +1 -1
- package/dist/lib/bitcoin/tx-verify.d.ts +0 -28
- package/dist/lib/bitcoin/tx-verify.d.ts.map +1 -1
- package/dist/lib/bitcoin/tx-verify.js +20 -61
- package/dist/lib/bitcoin/tx-verify.js.map +1 -1
- package/dist/lib/bitcoin/wallet.d.ts +0 -38
- package/dist/lib/bitcoin/wallet.d.ts.map +1 -1
- package/dist/lib/bitcoin/wallet.js +13 -38
- package/dist/lib/bitcoin/wallet.js.map +1 -1
- package/dist/lib/crypto/bytes.d.ts +0 -14
- package/dist/lib/crypto/bytes.d.ts.map +1 -1
- package/dist/lib/crypto/bytes.js +5 -14
- package/dist/lib/crypto/bytes.js.map +1 -1
- package/dist/lib/crypto/errors.d.ts +0 -5
- package/dist/lib/crypto/errors.d.ts.map +1 -1
- package/dist/lib/crypto/errors.js +2 -5
- package/dist/lib/crypto/errors.js.map +1 -1
- package/dist/lib/crypto/libp2p-identity.d.ts +0 -15
- package/dist/lib/crypto/libp2p-identity.d.ts.map +1 -1
- package/dist/lib/crypto/libp2p-identity.js +16 -28
- package/dist/lib/crypto/libp2p-identity.js.map +1 -1
- package/dist/lib/crypto/mnemonic.d.ts +0 -9
- package/dist/lib/crypto/mnemonic.d.ts.map +1 -1
- package/dist/lib/crypto/mnemonic.js +11 -27
- package/dist/lib/crypto/mnemonic.js.map +1 -1
- package/dist/lib/crypto/platform.d.ts +0 -6
- package/dist/lib/crypto/platform.d.ts.map +1 -1
- package/dist/lib/crypto/platform.js +2 -6
- package/dist/lib/crypto/platform.js.map +1 -1
- package/dist/lib/crypto/scalars.d.ts +0 -23
- package/dist/lib/crypto/scalars.d.ts.map +1 -1
- package/dist/lib/crypto/scalars.js +10 -23
- package/dist/lib/crypto/scalars.js.map +1 -1
- package/dist/lib/crypto/types.d.ts +0 -4
- package/dist/lib/crypto/types.d.ts.map +1 -1
- package/dist/lib/crypto/wasm.d.ts +0 -23
- package/dist/lib/crypto/wasm.d.ts.map +1 -1
- package/dist/lib/crypto/wasm.js +10 -13
- package/dist/lib/crypto/wasm.js.map +1 -1
- package/dist/lib/default-config.d.ts +1 -59
- package/dist/lib/default-config.d.ts.map +1 -1
- package/dist/lib/default-config.js +22 -61
- package/dist/lib/default-config.js.map +1 -1
- package/dist/lib/errors.d.ts +0 -54
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +12 -35
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/keystore.d.ts +0 -24
- package/dist/lib/keystore.d.ts.map +1 -1
- package/dist/lib/keystore.js +3 -10
- package/dist/lib/keystore.js.map +1 -1
- package/dist/lib/monero/output-scanner.d.ts +0 -18
- package/dist/lib/monero/output-scanner.d.ts.map +1 -1
- package/dist/lib/monero/output-scanner.js +17 -40
- package/dist/lib/monero/output-scanner.js.map +1 -1
- package/dist/lib/monero/rpc.d.ts +0 -64
- package/dist/lib/monero/rpc.d.ts.map +1 -1
- package/dist/lib/monero/rpc.js +17 -59
- package/dist/lib/monero/rpc.js.map +1 -1
- package/dist/lib/monero/verify-lock.d.ts +0 -12
- package/dist/lib/monero/verify-lock.d.ts.map +1 -1
- package/dist/lib/monero/verify-lock.js +9 -24
- package/dist/lib/monero/verify-lock.js.map +1 -1
- package/dist/lib/monero/verify-sweep.d.ts +0 -20
- package/dist/lib/monero/verify-sweep.d.ts.map +1 -1
- package/dist/lib/monero/verify-sweep.js +7 -25
- package/dist/lib/monero/verify-sweep.js.map +1 -1
- package/dist/lib/pow-solver.d.ts.map +1 -1
- package/dist/lib/pow-solver.js +3 -8
- package/dist/lib/pow-solver.js.map +1 -1
- package/dist/lib/retry.d.ts +7 -64
- package/dist/lib/retry.d.ts.map +1 -1
- package/dist/lib/retry.js +13 -13
- package/dist/lib/retry.js.map +1 -1
- package/dist/portable.d.ts.map +1 -1
- package/dist/portable.js +3 -4
- package/dist/portable.js.map +1 -1
- package/dist/quote-binding.d.ts +0 -13
- package/dist/quote-binding.d.ts.map +1 -1
- package/dist/quote-binding.js +3 -18
- package/dist/quote-binding.js.map +1 -1
- package/dist/swap-executor.d.ts +1 -5
- package/dist/swap-executor.d.ts.map +1 -1
- package/dist/swap-executor.js +1 -1
- package/dist/swap-executor.js.map +1 -1
- package/dist/types/api.d.ts +0 -6
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +6 -9
- package/dist/types/api.js.map +1 -1
- package/dist/types/errors.d.ts +0 -7
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +2 -7
- package/dist/types/errors.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/keys.d.ts +0 -15
- package/dist/types/keys.d.ts.map +1 -1
- package/dist/types/protocol.d.ts +0 -51
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +3 -8
- package/dist/types/protocol.js.map +1 -1
- package/dist/types/status.d.ts.map +1 -1
- package/dist/types/status.js +9 -14
- package/dist/types/status.js.map +1 -1
- package/dist/types/verification.d.ts +0 -10
- package/dist/types/verification.d.ts.map +1 -1
- package/dist/types/verification.js +7 -15
- package/dist/types/verification.js.map +1 -1
- package/dist/verification/chainflip-networks.d.ts +2 -35
- package/dist/verification/chainflip-networks.d.ts.map +1 -1
- package/dist/verification/chainflip-networks.js +12 -4
- package/dist/verification/chainflip-networks.js.map +1 -1
- package/dist/verification/chainflip.d.ts +0 -40
- package/dist/verification/chainflip.d.ts.map +1 -1
- package/dist/verification/chainflip.js +49 -129
- package/dist/verification/chainflip.js.map +1 -1
- package/dist/verification/constants.d.ts +0 -40
- package/dist/verification/constants.d.ts.map +1 -1
- package/dist/verification/constants.js +14 -40
- package/dist/verification/constants.js.map +1 -1
- package/dist/verification/index.d.ts +0 -26
- package/dist/verification/index.d.ts.map +1 -1
- package/dist/verification/index.js +8 -12
- package/dist/verification/index.js.map +1 -1
- package/dist/verification/memo.d.ts +0 -15
- package/dist/verification/memo.d.ts.map +1 -1
- package/dist/verification/memo.js +9 -27
- package/dist/verification/memo.js.map +1 -1
- package/dist/verification/near-intents.d.ts +0 -63
- package/dist/verification/near-intents.d.ts.map +1 -1
- package/dist/verification/near-intents.js +25 -67
- package/dist/verification/near-intents.js.map +1 -1
- package/dist/verification/rate-oracle.d.ts +0 -22
- package/dist/verification/rate-oracle.d.ts.map +1 -1
- package/dist/verification/rate-oracle.js +6 -11
- package/dist/verification/rate-oracle.js.map +1 -1
- package/dist/verification/thorchain-networks.d.ts +0 -27
- package/dist/verification/thorchain-networks.d.ts.map +1 -1
- package/dist/verification/thorchain-networks.js +13 -15
- package/dist/verification/thorchain-networks.js.map +1 -1
- package/dist/verification/thorchain.d.ts +0 -30
- package/dist/verification/thorchain.d.ts.map +1 -1
- package/dist/verification/thorchain.js +24 -47
- package/dist/verification/thorchain.js.map +1 -1
- package/dist/wasm-pins.d.ts +3 -3
- package/dist/wasm-pins.js +1 -1
- package/dist/wire/near-intents.zod.d.ts +0 -27
- package/dist/wire/near-intents.zod.d.ts.map +1 -1
- package/dist/wire/near-intents.zod.js +15 -23
- package/dist/wire/near-intents.zod.js.map +1 -1
- package/dist/wire/server/action.zod.d.ts +0 -10
- package/dist/wire/server/action.zod.d.ts.map +1 -1
- package/dist/wire/server/action.zod.js +8 -14
- package/dist/wire/server/action.zod.js.map +1 -1
- package/dist/wire/server/common.zod.d.ts +0 -13
- package/dist/wire/server/common.zod.d.ts.map +1 -1
- package/dist/wire/server/common.zod.js +6 -14
- package/dist/wire/server/common.zod.js.map +1 -1
- package/dist/wire/server/swap.zod.d.ts +0 -42
- package/dist/wire/server/swap.zod.d.ts.map +1 -1
- package/dist/wire/server/swap.zod.js +12 -26
- package/dist/wire/server/swap.zod.js.map +1 -1
- package/dist/wire/thorchain.zod.d.ts +0 -8
- package/dist/wire/thorchain.zod.d.ts.map +1 -1
- package/dist/wire/thorchain.zod.js +3 -8
- package/dist/wire/thorchain.zod.js.map +1 -1
- package/package.json +4 -5
- package/wasm/miradex-rust/README.md +3 -4
- package/wasm/miradex-rust/miradex_rust.d.ts +4 -6
- package/wasm/miradex-rust/miradex_rust.js +4 -6
- package/wasm/miradex-rust/miradex_rust_bg.wasm +0 -0
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
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"
|
|
95
|
-
//
|
|
96
|
-
//
|
|
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
|
|
107
|
-
//
|
|
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
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
//
|
|
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
|
|
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
|
-
//
|
|
170
|
-
//
|
|
171
|
-
//
|
|
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
|
|
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
|
-
//
|
|
212
|
-
// 1.
|
|
213
|
-
//
|
|
214
|
-
//
|
|
215
|
-
//
|
|
216
|
-
//
|
|
217
|
-
//
|
|
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
|
-
//
|
|
238
|
-
//
|
|
239
|
-
//
|
|
240
|
-
//
|
|
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
|
-
//
|
|
264
|
-
//
|
|
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
|
-
//
|
|
270
|
-
//
|
|
271
|
-
// /
|
|
272
|
-
//
|
|
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
|
|
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
|
|
310
|
-
//
|
|
311
|
-
//
|
|
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
|
|
319
|
-
//
|
|
320
|
-
//
|
|
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
|
-
//
|
|
351
|
-
//
|
|
352
|
-
//
|
|
353
|
-
//
|
|
354
|
-
//
|
|
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
|
-
//
|
|
391
|
-
//
|
|
392
|
-
//
|
|
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
|
-
//
|
|
461
|
-
// extract.ts). When present we still compare
|
|
462
|
-
//
|
|
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
|
|
466
|
-
// Fresh-fund path: reuse the signed PSBT
|
|
467
|
-
// Resume path:
|
|
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
|
-
|
|
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
|
|
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
|
-
//
|
|
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
|
|
37
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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":"
|
|
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":"
|
|
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
|
|
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":"
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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',
|