@miradexio/client 0.1.1 → 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 +9 -16
- 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 -4
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/atomic-swap/monero-sweep/errors.ts"],"names":[],"mappings":"AAAA
|
|
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":"
|
|
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
|
-
|
|
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
|
-
|
|
53
|
-
|
|
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
|
-
|
|
43
|
+
// Doubles per attempt, capped at 60s.
|
|
57
44
|
const SWEEP_RETRY_BASE_MS = 5_000;
|
|
58
|
-
|
|
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
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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-
|
|
107
|
-
//
|
|
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
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
|
225
|
-
//
|
|
226
|
-
//
|
|
227
|
-
// and
|
|
228
|
-
//
|
|
229
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
|
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
|
|
388
|
-
//
|
|
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":"
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
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":"
|
|
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"}
|