@atomiqlabs/lp-lib 14.0.0-dev.21 → 14.0.0-dev.23
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/LICENSE +201 -201
- package/dist/fees/IBtcFeeEstimator.d.ts +3 -3
- package/dist/fees/IBtcFeeEstimator.js +2 -2
- package/dist/index.d.ts +42 -42
- package/dist/index.js +58 -58
- package/dist/info/InfoHandler.d.ts +17 -17
- package/dist/info/InfoHandler.js +61 -61
- package/dist/plugins/IPlugin.d.ts +143 -143
- package/dist/plugins/IPlugin.js +34 -34
- package/dist/plugins/PluginManager.d.ts +112 -112
- package/dist/plugins/PluginManager.js +259 -259
- package/dist/prices/BinanceSwapPrice.d.ts +26 -26
- package/dist/prices/BinanceSwapPrice.js +92 -92
- package/dist/prices/CoinGeckoSwapPrice.d.ts +30 -30
- package/dist/prices/CoinGeckoSwapPrice.js +64 -64
- package/dist/prices/ISwapPrice.d.ts +43 -43
- package/dist/prices/ISwapPrice.js +55 -55
- package/dist/prices/OKXSwapPrice.d.ts +26 -26
- package/dist/prices/OKXSwapPrice.js +92 -92
- package/dist/storage/IIntermediaryStorage.d.ts +18 -18
- package/dist/storage/IIntermediaryStorage.js +2 -2
- package/dist/storagemanager/IntermediaryStorageManager.d.ts +19 -19
- package/dist/storagemanager/IntermediaryStorageManager.js +111 -111
- package/dist/storagemanager/StorageManager.d.ts +13 -13
- package/dist/storagemanager/StorageManager.js +64 -64
- package/dist/swaps/SwapHandler.d.ts +153 -153
- package/dist/swaps/SwapHandler.js +160 -160
- package/dist/swaps/SwapHandlerSwap.d.ts +79 -79
- package/dist/swaps/SwapHandlerSwap.js +78 -78
- package/dist/swaps/assertions/AmountAssertions.d.ts +28 -28
- package/dist/swaps/assertions/AmountAssertions.js +72 -72
- package/dist/swaps/assertions/FromBtcAmountAssertions.d.ts +76 -76
- package/dist/swaps/assertions/FromBtcAmountAssertions.js +180 -180
- package/dist/swaps/assertions/LightningAssertions.d.ts +44 -44
- package/dist/swaps/assertions/LightningAssertions.js +86 -86
- package/dist/swaps/assertions/ToBtcAmountAssertions.d.ts +53 -53
- package/dist/swaps/assertions/ToBtcAmountAssertions.js +150 -150
- package/dist/swaps/escrow/EscrowHandler.d.ts +51 -51
- package/dist/swaps/escrow/EscrowHandler.js +158 -158
- package/dist/swaps/escrow/EscrowHandlerSwap.d.ts +35 -35
- package/dist/swaps/escrow/EscrowHandlerSwap.js +69 -69
- package/dist/swaps/escrow/FromBtcBaseSwap.d.ts +14 -14
- package/dist/swaps/escrow/FromBtcBaseSwap.js +32 -32
- package/dist/swaps/escrow/FromBtcBaseSwapHandler.d.ts +102 -102
- package/dist/swaps/escrow/FromBtcBaseSwapHandler.js +210 -210
- package/dist/swaps/escrow/ToBtcBaseSwap.d.ts +36 -36
- package/dist/swaps/escrow/ToBtcBaseSwap.js +67 -67
- package/dist/swaps/escrow/ToBtcBaseSwapHandler.d.ts +53 -53
- package/dist/swaps/escrow/ToBtcBaseSwapHandler.js +81 -81
- package/dist/swaps/escrow/frombtc_abstract/FromBtcAbs.d.ts +83 -83
- package/dist/swaps/escrow/frombtc_abstract/FromBtcAbs.js +318 -318
- package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.d.ts +21 -21
- package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.js +50 -50
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.d.ts +107 -107
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.js +675 -675
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.d.ts +33 -33
- package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.js +91 -91
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.d.ts +111 -111
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.js +684 -684
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.d.ts +55 -55
- package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.js +120 -120
- package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.d.ts +171 -171
- package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.js +706 -706
- package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.d.ts +26 -26
- package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.js +62 -62
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.d.ts +177 -177
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.js +863 -863
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.d.ts +24 -24
- package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.js +58 -58
- package/dist/swaps/spv_vault_swap/SpvVault.d.ts +40 -41
- package/dist/swaps/spv_vault_swap/SpvVault.js +111 -111
- package/dist/swaps/spv_vault_swap/SpvVaultSwap.d.ts +67 -67
- package/dist/swaps/spv_vault_swap/SpvVaultSwap.js +158 -158
- package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.d.ts +68 -68
- package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.js +492 -492
- package/dist/swaps/spv_vault_swap/SpvVaults.d.ts +52 -52
- package/dist/swaps/spv_vault_swap/SpvVaults.js +386 -364
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.d.ts +51 -51
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.js +650 -650
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.d.ts +52 -52
- package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.js +118 -118
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.d.ts +76 -76
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.js +494 -494
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.d.ts +34 -34
- package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.js +81 -81
- package/dist/utils/BitcoinUtils.d.ts +2 -2
- package/dist/utils/BitcoinUtils.js +45 -45
- package/dist/utils/Utils.d.ts +29 -29
- package/dist/utils/Utils.js +89 -89
- package/dist/utils/paramcoders/IParamReader.d.ts +5 -5
- package/dist/utils/paramcoders/IParamReader.js +2 -2
- package/dist/utils/paramcoders/IParamWriter.d.ts +4 -4
- package/dist/utils/paramcoders/IParamWriter.js +2 -2
- package/dist/utils/paramcoders/LegacyParamEncoder.d.ts +10 -10
- package/dist/utils/paramcoders/LegacyParamEncoder.js +22 -22
- package/dist/utils/paramcoders/ParamDecoder.d.ts +25 -25
- package/dist/utils/paramcoders/ParamDecoder.js +222 -222
- package/dist/utils/paramcoders/ParamEncoder.d.ts +9 -9
- package/dist/utils/paramcoders/ParamEncoder.js +22 -22
- package/dist/utils/paramcoders/SchemaVerifier.d.ts +21 -21
- package/dist/utils/paramcoders/SchemaVerifier.js +84 -84
- package/dist/utils/paramcoders/server/ServerParamDecoder.d.ts +8 -8
- package/dist/utils/paramcoders/server/ServerParamDecoder.js +107 -107
- package/dist/utils/paramcoders/server/ServerParamEncoder.d.ts +11 -11
- package/dist/utils/paramcoders/server/ServerParamEncoder.js +65 -65
- package/dist/wallets/IBitcoinWallet.d.ts +67 -67
- package/dist/wallets/IBitcoinWallet.js +2 -2
- package/dist/wallets/ILightningWallet.d.ts +117 -117
- package/dist/wallets/ILightningWallet.js +37 -37
- package/dist/wallets/ISpvVaultSigner.d.ts +7 -7
- package/dist/wallets/ISpvVaultSigner.js +2 -2
- package/package.json +36 -36
- package/src/fees/IBtcFeeEstimator.ts +6 -6
- package/src/index.ts +53 -53
- package/src/info/InfoHandler.ts +106 -106
- package/src/plugins/IPlugin.ts +168 -168
- package/src/plugins/PluginManager.ts +336 -336
- package/src/prices/BinanceSwapPrice.ts +113 -113
- package/src/prices/CoinGeckoSwapPrice.ts +87 -87
- package/src/prices/ISwapPrice.ts +88 -88
- package/src/prices/OKXSwapPrice.ts +113 -113
- package/src/storage/IIntermediaryStorage.ts +19 -19
- package/src/storagemanager/IntermediaryStorageManager.ts +118 -118
- package/src/storagemanager/StorageManager.ts +78 -78
- package/src/swaps/SwapHandler.ts +277 -277
- package/src/swaps/SwapHandlerSwap.ts +141 -141
- package/src/swaps/assertions/AmountAssertions.ts +76 -76
- package/src/swaps/assertions/FromBtcAmountAssertions.ts +246 -246
- package/src/swaps/assertions/LightningAssertions.ts +103 -103
- package/src/swaps/assertions/ToBtcAmountAssertions.ts +203 -203
- package/src/swaps/escrow/EscrowHandler.ts +179 -179
- package/src/swaps/escrow/EscrowHandlerSwap.ts +86 -86
- package/src/swaps/escrow/FromBtcBaseSwap.ts +38 -38
- package/src/swaps/escrow/FromBtcBaseSwapHandler.ts +286 -286
- package/src/swaps/escrow/ToBtcBaseSwap.ts +85 -85
- package/src/swaps/escrow/ToBtcBaseSwapHandler.ts +129 -129
- package/src/swaps/escrow/frombtc_abstract/FromBtcAbs.ts +452 -452
- package/src/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.ts +61 -61
- package/src/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.ts +856 -856
- package/src/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.ts +141 -141
- package/src/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.ts +850 -850
- package/src/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.ts +196 -196
- package/src/swaps/escrow/tobtc_abstract/ToBtcAbs.ts +879 -879
- package/src/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.ts +102 -102
- package/src/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.ts +1112 -1112
- package/src/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.ts +80 -80
- package/src/swaps/spv_vault_swap/SpvVault.ts +143 -143
- package/src/swaps/spv_vault_swap/SpvVaultSwap.ts +225 -225
- package/src/swaps/spv_vault_swap/SpvVaultSwapHandler.ts +628 -628
- package/src/swaps/spv_vault_swap/SpvVaults.ts +458 -435
- package/src/swaps/trusted/frombtc_trusted/FromBtcTrusted.ts +747 -747
- package/src/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.ts +185 -185
- package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.ts +590 -590
- package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.ts +121 -121
- package/src/utils/BitcoinUtils.ts +42 -42
- package/src/utils/Utils.ts +104 -104
- package/src/utils/paramcoders/IParamReader.ts +7 -7
- package/src/utils/paramcoders/IParamWriter.ts +8 -8
- package/src/utils/paramcoders/LegacyParamEncoder.ts +27 -27
- package/src/utils/paramcoders/ParamDecoder.ts +218 -218
- package/src/utils/paramcoders/ParamEncoder.ts +29 -29
- package/src/utils/paramcoders/SchemaVerifier.ts +96 -96
- package/src/utils/paramcoders/server/ServerParamDecoder.ts +118 -118
- package/src/utils/paramcoders/server/ServerParamEncoder.ts +75 -75
- package/src/wallets/IBitcoinWallet.ts +68 -68
- package/src/wallets/ILightningWallet.ts +178 -178
- package/src/wallets/ISpvVaultSigner.ts +10 -10
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { SwapData } from "@atomiqlabs/base";
|
|
2
|
-
import { ToBtcBaseSwap } from "../ToBtcBaseSwap";
|
|
3
|
-
export declare enum ToBtcSwapState {
|
|
4
|
-
REFUNDED = -3,
|
|
5
|
-
CANCELED = -2,
|
|
6
|
-
NON_PAYABLE = -1,
|
|
7
|
-
SAVED = 0,
|
|
8
|
-
COMMITED = 1,
|
|
9
|
-
BTC_SENDING = 2,
|
|
10
|
-
BTC_SENT = 3,
|
|
11
|
-
CLAIMED = 4
|
|
12
|
-
}
|
|
13
|
-
export declare class ToBtcSwapAbs<T extends SwapData = SwapData> extends ToBtcBaseSwap<T, ToBtcSwapState> {
|
|
14
|
-
readonly address: string;
|
|
15
|
-
readonly satsPerVbyte: bigint;
|
|
16
|
-
readonly nonce: bigint;
|
|
17
|
-
readonly requiredConfirmations: number;
|
|
18
|
-
readonly preferedConfirmationTarget: number;
|
|
19
|
-
txId: string;
|
|
20
|
-
constructor(chainIdentifier: string, address: string, amount: bigint, swapFee: bigint, swapFeeInToken: bigint, networkFee: bigint, networkFeeInToken: bigint, satsPerVbyte: bigint, nonce: bigint, requiredConfirmations: number, preferedConfirmationTarget: number);
|
|
21
|
-
constructor(obj: any);
|
|
22
|
-
serialize(): any;
|
|
23
|
-
isInitiated(): boolean;
|
|
24
|
-
isFailed(): boolean;
|
|
25
|
-
isSuccess(): boolean;
|
|
26
|
-
}
|
|
1
|
+
import { SwapData } from "@atomiqlabs/base";
|
|
2
|
+
import { ToBtcBaseSwap } from "../ToBtcBaseSwap";
|
|
3
|
+
export declare enum ToBtcSwapState {
|
|
4
|
+
REFUNDED = -3,
|
|
5
|
+
CANCELED = -2,
|
|
6
|
+
NON_PAYABLE = -1,
|
|
7
|
+
SAVED = 0,
|
|
8
|
+
COMMITED = 1,
|
|
9
|
+
BTC_SENDING = 2,
|
|
10
|
+
BTC_SENT = 3,
|
|
11
|
+
CLAIMED = 4
|
|
12
|
+
}
|
|
13
|
+
export declare class ToBtcSwapAbs<T extends SwapData = SwapData> extends ToBtcBaseSwap<T, ToBtcSwapState> {
|
|
14
|
+
readonly address: string;
|
|
15
|
+
readonly satsPerVbyte: bigint;
|
|
16
|
+
readonly nonce: bigint;
|
|
17
|
+
readonly requiredConfirmations: number;
|
|
18
|
+
readonly preferedConfirmationTarget: number;
|
|
19
|
+
txId: string;
|
|
20
|
+
constructor(chainIdentifier: string, address: string, amount: bigint, swapFee: bigint, swapFeeInToken: bigint, networkFee: bigint, networkFeeInToken: bigint, satsPerVbyte: bigint, nonce: bigint, requiredConfirmations: number, preferedConfirmationTarget: number);
|
|
21
|
+
constructor(obj: any);
|
|
22
|
+
serialize(): any;
|
|
23
|
+
isInitiated(): boolean;
|
|
24
|
+
isFailed(): boolean;
|
|
25
|
+
isSuccess(): boolean;
|
|
26
|
+
}
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ToBtcSwapAbs = exports.ToBtcSwapState = void 0;
|
|
4
|
-
const index_1 = require("../../../index");
|
|
5
|
-
const ToBtcBaseSwap_1 = require("../ToBtcBaseSwap");
|
|
6
|
-
const Utils_1 = require("../../../utils/Utils");
|
|
7
|
-
var ToBtcSwapState;
|
|
8
|
-
(function (ToBtcSwapState) {
|
|
9
|
-
ToBtcSwapState[ToBtcSwapState["REFUNDED"] = -3] = "REFUNDED";
|
|
10
|
-
ToBtcSwapState[ToBtcSwapState["CANCELED"] = -2] = "CANCELED";
|
|
11
|
-
ToBtcSwapState[ToBtcSwapState["NON_PAYABLE"] = -1] = "NON_PAYABLE";
|
|
12
|
-
ToBtcSwapState[ToBtcSwapState["SAVED"] = 0] = "SAVED";
|
|
13
|
-
ToBtcSwapState[ToBtcSwapState["COMMITED"] = 1] = "COMMITED";
|
|
14
|
-
ToBtcSwapState[ToBtcSwapState["BTC_SENDING"] = 2] = "BTC_SENDING";
|
|
15
|
-
ToBtcSwapState[ToBtcSwapState["BTC_SENT"] = 3] = "BTC_SENT";
|
|
16
|
-
ToBtcSwapState[ToBtcSwapState["CLAIMED"] = 4] = "CLAIMED";
|
|
17
|
-
})(ToBtcSwapState = exports.ToBtcSwapState || (exports.ToBtcSwapState = {}));
|
|
18
|
-
class ToBtcSwapAbs extends ToBtcBaseSwap_1.ToBtcBaseSwap {
|
|
19
|
-
constructor(chainIdOrObj, address, amount, swapFee, swapFeeInToken, networkFee, networkFeeInToken, satsPerVbyte, nonce, requiredConfirmations, preferedConfirmationTarget) {
|
|
20
|
-
if (typeof (chainIdOrObj) === "string") {
|
|
21
|
-
super(chainIdOrObj, amount, swapFee, swapFeeInToken, networkFee, networkFeeInToken);
|
|
22
|
-
this.state = ToBtcSwapState.SAVED;
|
|
23
|
-
this.address = address;
|
|
24
|
-
this.satsPerVbyte = satsPerVbyte;
|
|
25
|
-
this.nonce = nonce;
|
|
26
|
-
this.requiredConfirmations = requiredConfirmations;
|
|
27
|
-
this.preferedConfirmationTarget = preferedConfirmationTarget;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
super(chainIdOrObj);
|
|
31
|
-
this.address = chainIdOrObj.address;
|
|
32
|
-
this.satsPerVbyte = BigInt(chainIdOrObj.satsPerVbyte);
|
|
33
|
-
this.nonce = BigInt(chainIdOrObj.nonce);
|
|
34
|
-
this.requiredConfirmations = chainIdOrObj.requiredConfirmations;
|
|
35
|
-
this.preferedConfirmationTarget = chainIdOrObj.preferedConfirmationTarget;
|
|
36
|
-
this.txId = chainIdOrObj.txId;
|
|
37
|
-
//Compatibility
|
|
38
|
-
this.quotedNetworkFee ?? (this.quotedNetworkFee = (0, Utils_1.deserializeBN)(chainIdOrObj.networkFee));
|
|
39
|
-
}
|
|
40
|
-
this.type = index_1.SwapHandlerType.TO_BTC;
|
|
41
|
-
}
|
|
42
|
-
serialize() {
|
|
43
|
-
const partialSerialized = super.serialize();
|
|
44
|
-
partialSerialized.address = this.address;
|
|
45
|
-
partialSerialized.satsPerVbyte = this.satsPerVbyte.toString(10);
|
|
46
|
-
partialSerialized.requiredConfirmations = this.requiredConfirmations;
|
|
47
|
-
partialSerialized.nonce = this.nonce.toString(10);
|
|
48
|
-
partialSerialized.preferedConfirmationTarget = this.preferedConfirmationTarget;
|
|
49
|
-
partialSerialized.txId = this.txId;
|
|
50
|
-
return partialSerialized;
|
|
51
|
-
}
|
|
52
|
-
isInitiated() {
|
|
53
|
-
return this.state !== ToBtcSwapState.SAVED;
|
|
54
|
-
}
|
|
55
|
-
isFailed() {
|
|
56
|
-
return this.state === ToBtcSwapState.NON_PAYABLE || this.state === ToBtcSwapState.REFUNDED || this.state === ToBtcSwapState.CANCELED;
|
|
57
|
-
}
|
|
58
|
-
isSuccess() {
|
|
59
|
-
return this.state === ToBtcSwapState.CLAIMED;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.ToBtcSwapAbs = ToBtcSwapAbs;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ToBtcSwapAbs = exports.ToBtcSwapState = void 0;
|
|
4
|
+
const index_1 = require("../../../index");
|
|
5
|
+
const ToBtcBaseSwap_1 = require("../ToBtcBaseSwap");
|
|
6
|
+
const Utils_1 = require("../../../utils/Utils");
|
|
7
|
+
var ToBtcSwapState;
|
|
8
|
+
(function (ToBtcSwapState) {
|
|
9
|
+
ToBtcSwapState[ToBtcSwapState["REFUNDED"] = -3] = "REFUNDED";
|
|
10
|
+
ToBtcSwapState[ToBtcSwapState["CANCELED"] = -2] = "CANCELED";
|
|
11
|
+
ToBtcSwapState[ToBtcSwapState["NON_PAYABLE"] = -1] = "NON_PAYABLE";
|
|
12
|
+
ToBtcSwapState[ToBtcSwapState["SAVED"] = 0] = "SAVED";
|
|
13
|
+
ToBtcSwapState[ToBtcSwapState["COMMITED"] = 1] = "COMMITED";
|
|
14
|
+
ToBtcSwapState[ToBtcSwapState["BTC_SENDING"] = 2] = "BTC_SENDING";
|
|
15
|
+
ToBtcSwapState[ToBtcSwapState["BTC_SENT"] = 3] = "BTC_SENT";
|
|
16
|
+
ToBtcSwapState[ToBtcSwapState["CLAIMED"] = 4] = "CLAIMED";
|
|
17
|
+
})(ToBtcSwapState = exports.ToBtcSwapState || (exports.ToBtcSwapState = {}));
|
|
18
|
+
class ToBtcSwapAbs extends ToBtcBaseSwap_1.ToBtcBaseSwap {
|
|
19
|
+
constructor(chainIdOrObj, address, amount, swapFee, swapFeeInToken, networkFee, networkFeeInToken, satsPerVbyte, nonce, requiredConfirmations, preferedConfirmationTarget) {
|
|
20
|
+
if (typeof (chainIdOrObj) === "string") {
|
|
21
|
+
super(chainIdOrObj, amount, swapFee, swapFeeInToken, networkFee, networkFeeInToken);
|
|
22
|
+
this.state = ToBtcSwapState.SAVED;
|
|
23
|
+
this.address = address;
|
|
24
|
+
this.satsPerVbyte = satsPerVbyte;
|
|
25
|
+
this.nonce = nonce;
|
|
26
|
+
this.requiredConfirmations = requiredConfirmations;
|
|
27
|
+
this.preferedConfirmationTarget = preferedConfirmationTarget;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
super(chainIdOrObj);
|
|
31
|
+
this.address = chainIdOrObj.address;
|
|
32
|
+
this.satsPerVbyte = BigInt(chainIdOrObj.satsPerVbyte);
|
|
33
|
+
this.nonce = BigInt(chainIdOrObj.nonce);
|
|
34
|
+
this.requiredConfirmations = chainIdOrObj.requiredConfirmations;
|
|
35
|
+
this.preferedConfirmationTarget = chainIdOrObj.preferedConfirmationTarget;
|
|
36
|
+
this.txId = chainIdOrObj.txId;
|
|
37
|
+
//Compatibility
|
|
38
|
+
this.quotedNetworkFee ?? (this.quotedNetworkFee = (0, Utils_1.deserializeBN)(chainIdOrObj.networkFee));
|
|
39
|
+
}
|
|
40
|
+
this.type = index_1.SwapHandlerType.TO_BTC;
|
|
41
|
+
}
|
|
42
|
+
serialize() {
|
|
43
|
+
const partialSerialized = super.serialize();
|
|
44
|
+
partialSerialized.address = this.address;
|
|
45
|
+
partialSerialized.satsPerVbyte = this.satsPerVbyte.toString(10);
|
|
46
|
+
partialSerialized.requiredConfirmations = this.requiredConfirmations;
|
|
47
|
+
partialSerialized.nonce = this.nonce.toString(10);
|
|
48
|
+
partialSerialized.preferedConfirmationTarget = this.preferedConfirmationTarget;
|
|
49
|
+
partialSerialized.txId = this.txId;
|
|
50
|
+
return partialSerialized;
|
|
51
|
+
}
|
|
52
|
+
isInitiated() {
|
|
53
|
+
return this.state !== ToBtcSwapState.SAVED;
|
|
54
|
+
}
|
|
55
|
+
isFailed() {
|
|
56
|
+
return this.state === ToBtcSwapState.NON_PAYABLE || this.state === ToBtcSwapState.REFUNDED || this.state === ToBtcSwapState.CANCELED;
|
|
57
|
+
}
|
|
58
|
+
isSuccess() {
|
|
59
|
+
return this.state === ToBtcSwapState.CLAIMED;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.ToBtcSwapAbs = ToBtcSwapAbs;
|
|
@@ -1,177 +1,177 @@
|
|
|
1
|
-
import { Express } from "express";
|
|
2
|
-
import { ToBtcLnSwapAbs, ToBtcLnSwapState } from "./ToBtcLnSwapAbs";
|
|
3
|
-
import { MultichainData, SwapHandlerType } from "../../SwapHandler";
|
|
4
|
-
import { ISwapPrice } from "../../../prices/ISwapPrice";
|
|
5
|
-
import { ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData } from "@atomiqlabs/base";
|
|
6
|
-
import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
|
|
7
|
-
import { ToBtcBaseConfig, ToBtcBaseSwapHandler } from "../ToBtcBaseSwapHandler";
|
|
8
|
-
import { ILightningWallet, ParsedPaymentRequest } from "../../../wallets/ILightningWallet";
|
|
9
|
-
import { LightningAssertions } from "../../assertions/LightningAssertions";
|
|
10
|
-
export type ToBtcLnConfig = ToBtcBaseConfig & {
|
|
11
|
-
routingFeeMultiplier: bigint;
|
|
12
|
-
minSendCltv: bigint;
|
|
13
|
-
allowProbeFailedSwaps: boolean;
|
|
14
|
-
allowShortExpiry: boolean;
|
|
15
|
-
minLnRoutingFeePPM?: bigint;
|
|
16
|
-
minLnBaseFee?: bigint;
|
|
17
|
-
exactInExpiry?: number;
|
|
18
|
-
};
|
|
19
|
-
type ExactInAuthorization = {
|
|
20
|
-
chainIdentifier: string;
|
|
21
|
-
reqId: string;
|
|
22
|
-
expiry: number;
|
|
23
|
-
amount: bigint;
|
|
24
|
-
initialInvoice: ParsedPaymentRequest;
|
|
25
|
-
quotedNetworkFeeInToken: bigint;
|
|
26
|
-
swapFeeInToken: bigint;
|
|
27
|
-
total: bigint;
|
|
28
|
-
confidence: number;
|
|
29
|
-
quotedNetworkFee: bigint;
|
|
30
|
-
swapFee: bigint;
|
|
31
|
-
token: string;
|
|
32
|
-
swapExpiry: bigint;
|
|
33
|
-
offerer: string;
|
|
34
|
-
preFetchSignData: any;
|
|
35
|
-
metadata: {
|
|
36
|
-
request: any;
|
|
37
|
-
probeRequest?: any;
|
|
38
|
-
probeResponse?: any;
|
|
39
|
-
routeResponse?: any;
|
|
40
|
-
times: {
|
|
41
|
-
[key: string]: number;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
export type ToBtcLnRequestType = {
|
|
46
|
-
pr: string;
|
|
47
|
-
maxFee: bigint;
|
|
48
|
-
expiryTimestamp: bigint;
|
|
49
|
-
token: string;
|
|
50
|
-
offerer: string;
|
|
51
|
-
exactIn?: boolean;
|
|
52
|
-
amount?: bigint;
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Swap handler handling to BTCLN swaps using submarine swaps
|
|
56
|
-
*/
|
|
57
|
-
export declare class ToBtcLnAbs extends ToBtcBaseSwapHandler<ToBtcLnSwapAbs, ToBtcLnSwapState> {
|
|
58
|
-
activeSubscriptions: Set<string>;
|
|
59
|
-
readonly type = SwapHandlerType.TO_BTCLN;
|
|
60
|
-
readonly swapType = ChainSwapType.HTLC;
|
|
61
|
-
readonly config: ToBtcLnConfig & {
|
|
62
|
-
minTsSendCltv: bigint;
|
|
63
|
-
};
|
|
64
|
-
readonly exactInAuths: {
|
|
65
|
-
[reqId: string]: ExactInAuthorization;
|
|
66
|
-
};
|
|
67
|
-
readonly lightning: ILightningWallet;
|
|
68
|
-
readonly LightningAssertions: LightningAssertions;
|
|
69
|
-
constructor(storageDirectory: IIntermediaryStorage<ToBtcLnSwapAbs>, path: string, chainData: MultichainData, lightning: ILightningWallet, swapPricing: ISwapPrice, config: ToBtcLnConfig);
|
|
70
|
-
/**
|
|
71
|
-
* Cleans up exactIn authorization that are already past their expiry
|
|
72
|
-
*
|
|
73
|
-
* @protected
|
|
74
|
-
*/
|
|
75
|
-
private cleanExpiredExactInAuthorizations;
|
|
76
|
-
protected processPastSwap(swap: ToBtcLnSwapAbs): Promise<void>;
|
|
77
|
-
/**
|
|
78
|
-
* Checks past swaps, deletes ones that are already expired, and tries to process ones that are committed.
|
|
79
|
-
*/
|
|
80
|
-
protected processPastSwaps(): Promise<void>;
|
|
81
|
-
/**
|
|
82
|
-
* Tries to claim the swap funds on the SC side, returns false if the swap is already locked (claim tx is already being sent)
|
|
83
|
-
*
|
|
84
|
-
* @param swap
|
|
85
|
-
* @private
|
|
86
|
-
* @returns Whether the transaction was successfully sent
|
|
87
|
-
*/
|
|
88
|
-
private tryClaimSwap;
|
|
89
|
-
/**
|
|
90
|
-
* Process the result of attempted lightning network payment
|
|
91
|
-
*
|
|
92
|
-
* @param swap
|
|
93
|
-
* @param lnPaymentStatus
|
|
94
|
-
*/
|
|
95
|
-
private processPaymentResult;
|
|
96
|
-
/**
|
|
97
|
-
* Subscribe to a pending lightning network payment attempt
|
|
98
|
-
*
|
|
99
|
-
* @param invoiceData
|
|
100
|
-
*/
|
|
101
|
-
private subscribeToPayment;
|
|
102
|
-
private sendLightningPayment;
|
|
103
|
-
/**
|
|
104
|
-
* Begins a lightning network payment attempt, if not attempted already
|
|
105
|
-
*
|
|
106
|
-
* @param swap
|
|
107
|
-
*/
|
|
108
|
-
private processInitialized;
|
|
109
|
-
protected processInitializeEvent(chainIdentifier: string, swap: ToBtcLnSwapAbs, event: InitializeEvent<SwapData>): Promise<void>;
|
|
110
|
-
protected processClaimEvent(chainIdentifier: string, swap: ToBtcLnSwapAbs, event: ClaimEvent<SwapData>): Promise<void>;
|
|
111
|
-
protected processRefundEvent(chainIdentifier: string, swap: ToBtcLnSwapAbs, event: RefundEvent<SwapData>): Promise<void>;
|
|
112
|
-
/**
|
|
113
|
-
* Checks if the amount was supplied in the exactIn request
|
|
114
|
-
*
|
|
115
|
-
* @param amount
|
|
116
|
-
* @param exactIn
|
|
117
|
-
* @throws {DefinedRuntimeError} will throw an error if the swap was exactIn, but amount not specified
|
|
118
|
-
*/
|
|
119
|
-
private checkAmount;
|
|
120
|
-
/**
|
|
121
|
-
* Checks if the maxFee parameter is in valid range (>0)
|
|
122
|
-
*
|
|
123
|
-
* @param maxFee
|
|
124
|
-
* @throws {DefinedRuntimeError} will throw an error if the maxFee is zero or negative
|
|
125
|
-
*/
|
|
126
|
-
private checkMaxFee;
|
|
127
|
-
/**
|
|
128
|
-
* Checks and parses a payment request (bolt11 invoice), additionally also checks expiration time of the invoice
|
|
129
|
-
*
|
|
130
|
-
* @param chainIdentifier
|
|
131
|
-
* @param pr
|
|
132
|
-
* @throws {DefinedRuntimeError} will throw an error if the pr is invalid, without amount or expired
|
|
133
|
-
*/
|
|
134
|
-
private checkPaymentRequest;
|
|
135
|
-
/**
|
|
136
|
-
* Checks if the request specified too short of an expiry
|
|
137
|
-
*
|
|
138
|
-
* @param expiryTimestamp
|
|
139
|
-
* @param currentTimestamp
|
|
140
|
-
* @throws {DefinedRuntimeError} will throw an error if the expiry time is too short
|
|
141
|
-
*/
|
|
142
|
-
private checkExpiry;
|
|
143
|
-
/**
|
|
144
|
-
* Estimates the routing fee & confidence by either probing or routing (if probing fails), the fee is also adjusted
|
|
145
|
-
* according to routing fee multiplier, and subject to minimums set in config
|
|
146
|
-
*
|
|
147
|
-
* @param amountBD
|
|
148
|
-
* @param maxFee
|
|
149
|
-
* @param expiryTimestamp
|
|
150
|
-
* @param currentTimestamp
|
|
151
|
-
* @param pr
|
|
152
|
-
* @param metadata
|
|
153
|
-
* @param abortSignal
|
|
154
|
-
* @throws {DefinedRuntimeError} will throw an error if the destination is unreachable
|
|
155
|
-
*/
|
|
156
|
-
private checkAndGetNetworkFee;
|
|
157
|
-
/**
|
|
158
|
-
* Checks and consumes (deletes & returns) exactIn authorizaton with a specific reqId
|
|
159
|
-
*
|
|
160
|
-
* @param reqId
|
|
161
|
-
* @throws {DefinedRuntimeError} will throw an error if the authorization doesn't exist
|
|
162
|
-
*/
|
|
163
|
-
private checkExactInAuthorization;
|
|
164
|
-
/**
|
|
165
|
-
* Checks if the newly submitted PR has the same parameters (destination, cltv_delta, routes) as the initial dummy
|
|
166
|
-
* invoice sent for exactIn swap quote
|
|
167
|
-
*
|
|
168
|
-
* @param pr
|
|
169
|
-
* @param parsedAuth
|
|
170
|
-
* @throws {DefinedRuntimeError} will throw an error if the details don't match
|
|
171
|
-
*/
|
|
172
|
-
private checkPaymentRequestMatchesInitial;
|
|
173
|
-
startRestServer(restServer: Express): void;
|
|
174
|
-
init(): Promise<void>;
|
|
175
|
-
getInfoData(): any;
|
|
176
|
-
}
|
|
177
|
-
export {};
|
|
1
|
+
import { Express } from "express";
|
|
2
|
+
import { ToBtcLnSwapAbs, ToBtcLnSwapState } from "./ToBtcLnSwapAbs";
|
|
3
|
+
import { MultichainData, SwapHandlerType } from "../../SwapHandler";
|
|
4
|
+
import { ISwapPrice } from "../../../prices/ISwapPrice";
|
|
5
|
+
import { ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData } from "@atomiqlabs/base";
|
|
6
|
+
import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
|
|
7
|
+
import { ToBtcBaseConfig, ToBtcBaseSwapHandler } from "../ToBtcBaseSwapHandler";
|
|
8
|
+
import { ILightningWallet, ParsedPaymentRequest } from "../../../wallets/ILightningWallet";
|
|
9
|
+
import { LightningAssertions } from "../../assertions/LightningAssertions";
|
|
10
|
+
export type ToBtcLnConfig = ToBtcBaseConfig & {
|
|
11
|
+
routingFeeMultiplier: bigint;
|
|
12
|
+
minSendCltv: bigint;
|
|
13
|
+
allowProbeFailedSwaps: boolean;
|
|
14
|
+
allowShortExpiry: boolean;
|
|
15
|
+
minLnRoutingFeePPM?: bigint;
|
|
16
|
+
minLnBaseFee?: bigint;
|
|
17
|
+
exactInExpiry?: number;
|
|
18
|
+
};
|
|
19
|
+
type ExactInAuthorization = {
|
|
20
|
+
chainIdentifier: string;
|
|
21
|
+
reqId: string;
|
|
22
|
+
expiry: number;
|
|
23
|
+
amount: bigint;
|
|
24
|
+
initialInvoice: ParsedPaymentRequest;
|
|
25
|
+
quotedNetworkFeeInToken: bigint;
|
|
26
|
+
swapFeeInToken: bigint;
|
|
27
|
+
total: bigint;
|
|
28
|
+
confidence: number;
|
|
29
|
+
quotedNetworkFee: bigint;
|
|
30
|
+
swapFee: bigint;
|
|
31
|
+
token: string;
|
|
32
|
+
swapExpiry: bigint;
|
|
33
|
+
offerer: string;
|
|
34
|
+
preFetchSignData: any;
|
|
35
|
+
metadata: {
|
|
36
|
+
request: any;
|
|
37
|
+
probeRequest?: any;
|
|
38
|
+
probeResponse?: any;
|
|
39
|
+
routeResponse?: any;
|
|
40
|
+
times: {
|
|
41
|
+
[key: string]: number;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export type ToBtcLnRequestType = {
|
|
46
|
+
pr: string;
|
|
47
|
+
maxFee: bigint;
|
|
48
|
+
expiryTimestamp: bigint;
|
|
49
|
+
token: string;
|
|
50
|
+
offerer: string;
|
|
51
|
+
exactIn?: boolean;
|
|
52
|
+
amount?: bigint;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Swap handler handling to BTCLN swaps using submarine swaps
|
|
56
|
+
*/
|
|
57
|
+
export declare class ToBtcLnAbs extends ToBtcBaseSwapHandler<ToBtcLnSwapAbs, ToBtcLnSwapState> {
|
|
58
|
+
activeSubscriptions: Set<string>;
|
|
59
|
+
readonly type = SwapHandlerType.TO_BTCLN;
|
|
60
|
+
readonly swapType = ChainSwapType.HTLC;
|
|
61
|
+
readonly config: ToBtcLnConfig & {
|
|
62
|
+
minTsSendCltv: bigint;
|
|
63
|
+
};
|
|
64
|
+
readonly exactInAuths: {
|
|
65
|
+
[reqId: string]: ExactInAuthorization;
|
|
66
|
+
};
|
|
67
|
+
readonly lightning: ILightningWallet;
|
|
68
|
+
readonly LightningAssertions: LightningAssertions;
|
|
69
|
+
constructor(storageDirectory: IIntermediaryStorage<ToBtcLnSwapAbs>, path: string, chainData: MultichainData, lightning: ILightningWallet, swapPricing: ISwapPrice, config: ToBtcLnConfig);
|
|
70
|
+
/**
|
|
71
|
+
* Cleans up exactIn authorization that are already past their expiry
|
|
72
|
+
*
|
|
73
|
+
* @protected
|
|
74
|
+
*/
|
|
75
|
+
private cleanExpiredExactInAuthorizations;
|
|
76
|
+
protected processPastSwap(swap: ToBtcLnSwapAbs): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Checks past swaps, deletes ones that are already expired, and tries to process ones that are committed.
|
|
79
|
+
*/
|
|
80
|
+
protected processPastSwaps(): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Tries to claim the swap funds on the SC side, returns false if the swap is already locked (claim tx is already being sent)
|
|
83
|
+
*
|
|
84
|
+
* @param swap
|
|
85
|
+
* @private
|
|
86
|
+
* @returns Whether the transaction was successfully sent
|
|
87
|
+
*/
|
|
88
|
+
private tryClaimSwap;
|
|
89
|
+
/**
|
|
90
|
+
* Process the result of attempted lightning network payment
|
|
91
|
+
*
|
|
92
|
+
* @param swap
|
|
93
|
+
* @param lnPaymentStatus
|
|
94
|
+
*/
|
|
95
|
+
private processPaymentResult;
|
|
96
|
+
/**
|
|
97
|
+
* Subscribe to a pending lightning network payment attempt
|
|
98
|
+
*
|
|
99
|
+
* @param invoiceData
|
|
100
|
+
*/
|
|
101
|
+
private subscribeToPayment;
|
|
102
|
+
private sendLightningPayment;
|
|
103
|
+
/**
|
|
104
|
+
* Begins a lightning network payment attempt, if not attempted already
|
|
105
|
+
*
|
|
106
|
+
* @param swap
|
|
107
|
+
*/
|
|
108
|
+
private processInitialized;
|
|
109
|
+
protected processInitializeEvent(chainIdentifier: string, swap: ToBtcLnSwapAbs, event: InitializeEvent<SwapData>): Promise<void>;
|
|
110
|
+
protected processClaimEvent(chainIdentifier: string, swap: ToBtcLnSwapAbs, event: ClaimEvent<SwapData>): Promise<void>;
|
|
111
|
+
protected processRefundEvent(chainIdentifier: string, swap: ToBtcLnSwapAbs, event: RefundEvent<SwapData>): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Checks if the amount was supplied in the exactIn request
|
|
114
|
+
*
|
|
115
|
+
* @param amount
|
|
116
|
+
* @param exactIn
|
|
117
|
+
* @throws {DefinedRuntimeError} will throw an error if the swap was exactIn, but amount not specified
|
|
118
|
+
*/
|
|
119
|
+
private checkAmount;
|
|
120
|
+
/**
|
|
121
|
+
* Checks if the maxFee parameter is in valid range (>0)
|
|
122
|
+
*
|
|
123
|
+
* @param maxFee
|
|
124
|
+
* @throws {DefinedRuntimeError} will throw an error if the maxFee is zero or negative
|
|
125
|
+
*/
|
|
126
|
+
private checkMaxFee;
|
|
127
|
+
/**
|
|
128
|
+
* Checks and parses a payment request (bolt11 invoice), additionally also checks expiration time of the invoice
|
|
129
|
+
*
|
|
130
|
+
* @param chainIdentifier
|
|
131
|
+
* @param pr
|
|
132
|
+
* @throws {DefinedRuntimeError} will throw an error if the pr is invalid, without amount or expired
|
|
133
|
+
*/
|
|
134
|
+
private checkPaymentRequest;
|
|
135
|
+
/**
|
|
136
|
+
* Checks if the request specified too short of an expiry
|
|
137
|
+
*
|
|
138
|
+
* @param expiryTimestamp
|
|
139
|
+
* @param currentTimestamp
|
|
140
|
+
* @throws {DefinedRuntimeError} will throw an error if the expiry time is too short
|
|
141
|
+
*/
|
|
142
|
+
private checkExpiry;
|
|
143
|
+
/**
|
|
144
|
+
* Estimates the routing fee & confidence by either probing or routing (if probing fails), the fee is also adjusted
|
|
145
|
+
* according to routing fee multiplier, and subject to minimums set in config
|
|
146
|
+
*
|
|
147
|
+
* @param amountBD
|
|
148
|
+
* @param maxFee
|
|
149
|
+
* @param expiryTimestamp
|
|
150
|
+
* @param currentTimestamp
|
|
151
|
+
* @param pr
|
|
152
|
+
* @param metadata
|
|
153
|
+
* @param abortSignal
|
|
154
|
+
* @throws {DefinedRuntimeError} will throw an error if the destination is unreachable
|
|
155
|
+
*/
|
|
156
|
+
private checkAndGetNetworkFee;
|
|
157
|
+
/**
|
|
158
|
+
* Checks and consumes (deletes & returns) exactIn authorizaton with a specific reqId
|
|
159
|
+
*
|
|
160
|
+
* @param reqId
|
|
161
|
+
* @throws {DefinedRuntimeError} will throw an error if the authorization doesn't exist
|
|
162
|
+
*/
|
|
163
|
+
private checkExactInAuthorization;
|
|
164
|
+
/**
|
|
165
|
+
* Checks if the newly submitted PR has the same parameters (destination, cltv_delta, routes) as the initial dummy
|
|
166
|
+
* invoice sent for exactIn swap quote
|
|
167
|
+
*
|
|
168
|
+
* @param pr
|
|
169
|
+
* @param parsedAuth
|
|
170
|
+
* @throws {DefinedRuntimeError} will throw an error if the details don't match
|
|
171
|
+
*/
|
|
172
|
+
private checkPaymentRequestMatchesInitial;
|
|
173
|
+
startRestServer(restServer: Express): void;
|
|
174
|
+
init(): Promise<void>;
|
|
175
|
+
getInfoData(): any;
|
|
176
|
+
}
|
|
177
|
+
export {};
|