@atomiqlabs/sdk 8.1.8 → 8.3.1
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/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
- package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
- package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
- package/dist/enums/FeeType.d.ts +7 -0
- package/dist/enums/FeeType.js +7 -0
- package/dist/enums/SwapAmountType.d.ts +7 -0
- package/dist/enums/SwapAmountType.js +7 -0
- package/dist/enums/SwapDirection.d.ts +7 -0
- package/dist/enums/SwapDirection.js +7 -0
- package/dist/enums/SwapType.d.ts +62 -1
- package/dist/enums/SwapType.js +62 -1
- package/dist/errors/IntermediaryError.d.ts +4 -0
- package/dist/errors/IntermediaryError.js +1 -0
- package/dist/errors/RequestError.d.ts +15 -1
- package/dist/errors/RequestError.js +8 -0
- package/dist/errors/UserError.d.ts +1 -0
- package/dist/errors/UserError.js +1 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.js +3 -4
- package/dist/intermediaries/Intermediary.d.ts +57 -10
- package/dist/intermediaries/Intermediary.js +37 -10
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +55 -22
- package/dist/intermediaries/IntermediaryDiscovery.js +35 -22
- package/dist/prices/RedundantSwapPrice.d.ts +24 -3
- package/dist/prices/RedundantSwapPrice.js +21 -1
- package/dist/prices/SingleSwapPrice.d.ts +9 -6
- package/dist/prices/SingleSwapPrice.js +10 -7
- package/dist/prices/SwapPriceWithChain.d.ts +54 -16
- package/dist/prices/SwapPriceWithChain.js +58 -20
- package/dist/prices/abstract/ISwapPrice.d.ts +94 -45
- package/dist/prices/abstract/ISwapPrice.js +103 -55
- package/dist/prices/providers/BinancePriceProvider.d.ts +7 -0
- package/dist/prices/providers/BinancePriceProvider.js +7 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +6 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.js +6 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +6 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +6 -0
- package/dist/prices/providers/CustomPriceProvider.d.ts +11 -0
- package/dist/prices/providers/CustomPriceProvider.js +11 -0
- package/dist/prices/providers/KrakenPriceProvider.d.ts +9 -0
- package/dist/prices/providers/KrakenPriceProvider.js +9 -0
- package/dist/prices/providers/OKXPriceProvider.d.ts +6 -0
- package/dist/prices/providers/OKXPriceProvider.js +6 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
- package/dist/storage/IUnifiedStorage.d.ts +19 -7
- package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
- package/dist/storage/UnifiedSwapStorage.js +29 -1
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
- package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
- package/dist/storage-browser/LocalStorageManager.js +25 -1
- package/dist/swapper/Swapper.d.ts +302 -221
- package/dist/swapper/Swapper.js +376 -344
- package/dist/swapper/SwapperFactory.d.ts +41 -17
- package/dist/swapper/SwapperFactory.js +23 -2
- package/dist/swapper/SwapperUtils.d.ts +75 -28
- package/dist/swapper/SwapperUtils.js +107 -60
- package/dist/swapper/SwapperWithChain.d.ts +286 -91
- package/dist/swapper/SwapperWithChain.js +218 -64
- package/dist/swapper/SwapperWithSigner.d.ts +229 -80
- package/dist/swapper/SwapperWithSigner.js +190 -44
- package/dist/swaps/IAddressSwap.d.ts +10 -1
- package/dist/swaps/IAddressSwap.js +2 -1
- package/dist/swaps/IBTCWalletSwap.d.ts +24 -6
- package/dist/swaps/IBTCWalletSwap.js +2 -1
- package/dist/swaps/IClaimableSwap.d.ts +36 -4
- package/dist/swaps/IClaimableSwap.js +2 -1
- package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
- package/dist/swaps/IRefundableSwap.d.ts +29 -3
- package/dist/swaps/IRefundableSwap.js +2 -1
- package/dist/swaps/ISwap.d.ts +159 -21
- package/dist/swaps/ISwap.js +90 -33
- package/dist/swaps/ISwapWithGasDrop.d.ts +6 -0
- package/dist/swaps/ISwapWithGasDrop.js +1 -0
- package/dist/swaps/ISwapWrapper.d.ts +157 -48
- package/dist/swaps/ISwapWrapper.js +130 -72
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +49 -6
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +94 -29
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +90 -27
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +275 -58
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +516 -239
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +76 -25
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +131 -49
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +311 -51
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +542 -193
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +209 -53
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +449 -242
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +197 -56
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +326 -189
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +60 -19
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +74 -31
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +36 -13
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +65 -19
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +328 -92
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +460 -219
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +244 -124
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +146 -18
- package/dist/swaps/trusted/ln/LnForGasSwap.js +173 -43
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +200 -47
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +230 -78
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
- package/dist/types/AmountData.d.ts +2 -1
- package/dist/types/CustomPriceFunction.d.ts +7 -1
- package/dist/types/SwapExecutionAction.d.ts +74 -4
- package/dist/types/SwapWithSigner.d.ts +4 -1
- package/dist/types/SwapWithSigner.js +5 -2
- package/dist/types/Token.d.ts +11 -5
- package/dist/types/Token.js +6 -3
- package/dist/types/TokenAmount.d.ts +3 -0
- package/dist/types/TokenAmount.js +2 -0
- package/dist/types/fees/Fee.d.ts +2 -1
- package/dist/types/fees/FeeBreakdown.d.ts +2 -1
- package/dist/types/fees/PercentagePPM.d.ts +2 -0
- package/dist/types/fees/PercentagePPM.js +1 -0
- package/dist/types/lnurl/LNURLPay.d.ts +14 -6
- package/dist/types/lnurl/LNURLPay.js +6 -2
- package/dist/types/lnurl/LNURLWithdraw.d.ts +12 -5
- package/dist/types/lnurl/LNURLWithdraw.js +6 -2
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +20 -0
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +3 -1
- package/dist/utils/BitcoinUtils.d.ts +1 -0
- package/dist/utils/BitcoinUtils.js +5 -1
- package/dist/utils/SwapUtils.d.ts +56 -1
- package/dist/utils/SwapUtils.js +53 -1
- package/dist/utils/TokenUtils.d.ts +10 -2
- package/dist/utils/TokenUtils.js +12 -4
- package/package.json +3 -3
- package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
- package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
- package/src/enums/FeeType.ts +7 -0
- package/src/enums/SwapAmountType.ts +7 -0
- package/src/enums/SwapDirection.ts +7 -0
- package/src/enums/SwapType.ts +62 -2
- package/src/errors/IntermediaryError.ts +4 -0
- package/src/errors/RequestError.ts +15 -1
- package/src/errors/UserError.ts +1 -0
- package/src/index.ts +6 -5
- package/src/intermediaries/Intermediary.ts +57 -10
- package/src/intermediaries/IntermediaryDiscovery.ts +60 -27
- package/src/prices/RedundantSwapPrice.ts +24 -4
- package/src/prices/SingleSwapPrice.ts +10 -7
- package/src/prices/SwapPriceWithChain.ts +59 -21
- package/src/prices/abstract/ISwapPrice.ts +114 -65
- package/src/prices/providers/BinancePriceProvider.ts +7 -0
- package/src/prices/providers/CoinGeckoPriceProvider.ts +6 -0
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +6 -0
- package/src/prices/providers/CustomPriceProvider.ts +11 -0
- package/src/prices/providers/KrakenPriceProvider.ts +9 -0
- package/src/prices/providers/OKXPriceProvider.ts +6 -0
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
- package/src/storage/IUnifiedStorage.ts +19 -7
- package/src/storage/UnifiedSwapStorage.ts +33 -3
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
- package/src/storage-browser/LocalStorageManager.ts +25 -1
- package/src/swapper/Swapper.ts +512 -378
- package/src/swapper/SwapperFactory.ts +44 -21
- package/src/swapper/SwapperUtils.ts +107 -60
- package/src/swapper/SwapperWithChain.ts +320 -81
- package/src/swapper/SwapperWithSigner.ts +263 -56
- package/src/swaps/IAddressSwap.ts +11 -1
- package/src/swaps/IBTCWalletSwap.ts +24 -8
- package/src/swaps/IClaimableSwap.ts +39 -4
- package/src/swaps/IClaimableSwapWrapper.ts +11 -2
- package/src/swaps/IRefundableSwap.ts +32 -3
- package/src/swaps/ISwap.ts +221 -82
- package/src/swaps/ISwapWithGasDrop.ts +6 -0
- package/src/swaps/ISwapWrapper.ts +212 -94
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +62 -18
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +120 -51
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +559 -256
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +155 -61
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +590 -226
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +470 -243
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +352 -193
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +86 -39
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +88 -33
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +534 -263
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +289 -148
- package/src/swaps/trusted/ln/LnForGasSwap.ts +184 -45
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +260 -86
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
- package/src/types/AmountData.ts +2 -1
- package/src/types/CustomPriceFunction.ts +7 -1
- package/src/types/SwapExecutionAction.ts +84 -5
- package/src/types/SwapWithSigner.ts +7 -3
- package/src/types/Token.ts +12 -5
- package/src/types/TokenAmount.ts +3 -0
- package/src/types/fees/Fee.ts +2 -1
- package/src/types/fees/FeeBreakdown.ts +2 -1
- package/src/types/fees/PercentagePPM.ts +2 -0
- package/src/types/lnurl/LNURLPay.ts +14 -6
- package/src/types/lnurl/LNURLWithdraw.ts +12 -5
- package/src/types/wallets/LightningInvoiceCreateService.ts +26 -0
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +3 -1
- package/src/utils/BitcoinUtils.ts +5 -0
- package/src/utils/SwapUtils.ts +61 -1
- package/src/utils/TokenUtils.ts +12 -4
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
- package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
- package/dist/bitcoin/LightningNetworkApi.js +0 -2
- package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
- package/dist/bitcoin/mempool/MempoolApi.js +0 -311
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
- package/dist/errors/PaymentAuthError.d.ts +0 -11
- package/dist/errors/PaymentAuthError.js +0 -23
- package/src/errors/PaymentAuthError.ts +0 -26
|
@@ -8,6 +8,7 @@ import { Buffer } from "buffer";
|
|
|
8
8
|
import { BitcoinRpcWithAddressIndex } from "@atomiqlabs/base";
|
|
9
9
|
/**
|
|
10
10
|
* UTXO data structure for Bitcoin wallets
|
|
11
|
+
*
|
|
11
12
|
* @category Bitcoin
|
|
12
13
|
*/
|
|
13
14
|
export type BitcoinWalletUtxo = {
|
|
@@ -25,26 +26,61 @@ export type BitcoinWalletUtxo = {
|
|
|
25
26
|
};
|
|
26
27
|
/**
|
|
27
28
|
* Identifies the address type of a Bitcoin address
|
|
29
|
+
*
|
|
28
30
|
* @category Bitcoin
|
|
29
31
|
*/
|
|
30
32
|
export declare function identifyAddressType(address: string, network: BTC_NETWORK): CoinselectAddressTypes;
|
|
31
33
|
/**
|
|
32
|
-
* Abstract base class for Bitcoin wallet implementations
|
|
34
|
+
* Abstract base class for Bitcoin wallet implementations, using bitcoin rpc with address index
|
|
35
|
+
* as a backend for fetching balances, UTXOs, etc.
|
|
36
|
+
*
|
|
33
37
|
* @category Bitcoin
|
|
34
38
|
*/
|
|
35
39
|
export declare abstract class BitcoinWallet implements IBitcoinWallet {
|
|
36
|
-
rpc: BitcoinRpcWithAddressIndex<any>;
|
|
37
|
-
network: BTC_NETWORK;
|
|
38
|
-
feeMultiplier: number;
|
|
39
|
-
feeOverride?: number;
|
|
40
|
+
protected readonly rpc: BitcoinRpcWithAddressIndex<any>;
|
|
41
|
+
protected readonly network: BTC_NETWORK;
|
|
42
|
+
protected feeMultiplier: number;
|
|
43
|
+
protected feeOverride?: number;
|
|
40
44
|
constructor(mempoolApi: BitcoinRpcWithAddressIndex<any>, network: BTC_NETWORK, feeMultiplier?: number, feeOverride?: number);
|
|
45
|
+
/**
|
|
46
|
+
* @inheritDoc
|
|
47
|
+
*/
|
|
41
48
|
getFeeRate(): Promise<number>;
|
|
49
|
+
/**
|
|
50
|
+
* Internal helper function for sending a raw transaction through the underlying RPC
|
|
51
|
+
*
|
|
52
|
+
* @param rawHex Serialized bitcoin transaction in hexadecimal format
|
|
53
|
+
* @returns txId Transaction ID of the submitted bitcoin transaction
|
|
54
|
+
*
|
|
55
|
+
* @protected
|
|
56
|
+
*/
|
|
42
57
|
protected _sendTransaction(rawHex: string): Promise<string>;
|
|
58
|
+
/**
|
|
59
|
+
* Internal helper function for fetching the balance of the wallet given a specific bitcoin wallet address
|
|
60
|
+
*
|
|
61
|
+
* @param address
|
|
62
|
+
* @protected
|
|
63
|
+
*/
|
|
43
64
|
protected _getBalance(address: string): Promise<{
|
|
44
65
|
confirmedBalance: bigint;
|
|
45
66
|
unconfirmedBalance: bigint;
|
|
46
67
|
}>;
|
|
68
|
+
/**
|
|
69
|
+
* Internal helper function for fetching the UTXO set of a given wallet address
|
|
70
|
+
*
|
|
71
|
+
* @param sendingAddress
|
|
72
|
+
* @param sendingAddressType
|
|
73
|
+
* @protected
|
|
74
|
+
*/
|
|
47
75
|
protected _getUtxoPool(sendingAddress: string, sendingAddressType: CoinselectAddressTypes): Promise<BitcoinWalletUtxo[]>;
|
|
76
|
+
/**
|
|
77
|
+
*
|
|
78
|
+
* @param sendingAccounts
|
|
79
|
+
* @param recipient
|
|
80
|
+
* @param amount
|
|
81
|
+
* @param feeRate
|
|
82
|
+
* @protected
|
|
83
|
+
*/
|
|
48
84
|
protected _getPsbt(sendingAccounts: {
|
|
49
85
|
pubkey: string;
|
|
50
86
|
address: string;
|
|
@@ -9,6 +9,7 @@ const BitcoinUtils_1 = require("../../utils/BitcoinUtils");
|
|
|
9
9
|
const Logger_1 = require("../../utils/Logger");
|
|
10
10
|
/**
|
|
11
11
|
* Identifies the address type of a Bitcoin address
|
|
12
|
+
*
|
|
12
13
|
* @category Bitcoin
|
|
13
14
|
*/
|
|
14
15
|
function identifyAddressType(address, network) {
|
|
@@ -30,7 +31,9 @@ function identifyAddressType(address, network) {
|
|
|
30
31
|
exports.identifyAddressType = identifyAddressType;
|
|
31
32
|
const logger = (0, Logger_1.getLogger)("BitcoinWallet: ");
|
|
32
33
|
/**
|
|
33
|
-
* Abstract base class for Bitcoin wallet implementations
|
|
34
|
+
* Abstract base class for Bitcoin wallet implementations, using bitcoin rpc with address index
|
|
35
|
+
* as a backend for fetching balances, UTXOs, etc.
|
|
36
|
+
*
|
|
34
37
|
* @category Bitcoin
|
|
35
38
|
*/
|
|
36
39
|
class BitcoinWallet {
|
|
@@ -40,18 +43,42 @@ class BitcoinWallet {
|
|
|
40
43
|
this.feeMultiplier = feeMultiplier;
|
|
41
44
|
this.feeOverride = feeOverride;
|
|
42
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* @inheritDoc
|
|
48
|
+
*/
|
|
43
49
|
async getFeeRate() {
|
|
44
50
|
if (this.feeOverride != null) {
|
|
45
51
|
return this.feeOverride;
|
|
46
52
|
}
|
|
47
53
|
return Math.floor((await this.rpc.getFeeRate()) * this.feeMultiplier);
|
|
48
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Internal helper function for sending a raw transaction through the underlying RPC
|
|
57
|
+
*
|
|
58
|
+
* @param rawHex Serialized bitcoin transaction in hexadecimal format
|
|
59
|
+
* @returns txId Transaction ID of the submitted bitcoin transaction
|
|
60
|
+
*
|
|
61
|
+
* @protected
|
|
62
|
+
*/
|
|
49
63
|
_sendTransaction(rawHex) {
|
|
50
64
|
return this.rpc.sendRawTransaction(rawHex);
|
|
51
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Internal helper function for fetching the balance of the wallet given a specific bitcoin wallet address
|
|
68
|
+
*
|
|
69
|
+
* @param address
|
|
70
|
+
* @protected
|
|
71
|
+
*/
|
|
52
72
|
_getBalance(address) {
|
|
53
73
|
return this.rpc.getAddressBalances(address);
|
|
54
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Internal helper function for fetching the UTXO set of a given wallet address
|
|
77
|
+
*
|
|
78
|
+
* @param sendingAddress
|
|
79
|
+
* @param sendingAddressType
|
|
80
|
+
* @protected
|
|
81
|
+
*/
|
|
55
82
|
async _getUtxoPool(sendingAddress, sendingAddressType) {
|
|
56
83
|
const utxos = await this.rpc.getAddressUTXOs(sendingAddress);
|
|
57
84
|
let totalSpendable = 0;
|
|
@@ -81,6 +108,14 @@ class BitcoinWallet {
|
|
|
81
108
|
logger.debug("_getUtxoPool(): Total spendable value: " + totalSpendable + " num utxos: " + utxoPool.length);
|
|
82
109
|
return utxoPool;
|
|
83
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
*
|
|
113
|
+
* @param sendingAccounts
|
|
114
|
+
* @param recipient
|
|
115
|
+
* @param amount
|
|
116
|
+
* @param feeRate
|
|
117
|
+
* @protected
|
|
118
|
+
*/
|
|
84
119
|
async _getPsbt(sendingAccounts, recipient, amount, feeRate) {
|
|
85
120
|
const psbt = new btc_signer_1.Transaction({ PSBTVersion: 0 });
|
|
86
121
|
psbt.addOutput({
|
|
@@ -1,25 +1,75 @@
|
|
|
1
1
|
import { Transaction } from "@scure/btc-signer";
|
|
2
2
|
/**
|
|
3
|
-
* Type guard to check if an object implements IBitcoinWallet
|
|
3
|
+
* Type guard to check if an object implements {@link IBitcoinWallet}
|
|
4
|
+
*
|
|
4
5
|
* @category Bitcoin
|
|
5
6
|
*/
|
|
6
7
|
export declare function isIBitcoinWallet(val: any): val is IBitcoinWallet;
|
|
7
8
|
/**
|
|
8
|
-
* Interface
|
|
9
|
+
* Interface to be implemented by Bitcoin wallets
|
|
10
|
+
*
|
|
9
11
|
* @category Bitcoin
|
|
10
12
|
*/
|
|
11
13
|
export interface IBitcoinWallet {
|
|
14
|
+
/**
|
|
15
|
+
* Signs and broadcasts a transaction sending `amount` of sats to `address`, optionally with the
|
|
16
|
+
* `feeRate` sats/vB fee rate.
|
|
17
|
+
*
|
|
18
|
+
* @param address Destination address of the transaction
|
|
19
|
+
* @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
|
|
20
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
21
|
+
*/
|
|
12
22
|
sendTransaction(address: string, amount: bigint, feeRate?: number): Promise<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Funds (populates the inputs) for a given PSBT from wallet's UTXO set
|
|
25
|
+
*
|
|
26
|
+
* @param psbt PSBT to add the inputs to
|
|
27
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
28
|
+
*/
|
|
13
29
|
fundPsbt(psbt: Transaction, feeRate?: number): Promise<Transaction>;
|
|
30
|
+
/**
|
|
31
|
+
* Signs inputs in the provided PSBT
|
|
32
|
+
*
|
|
33
|
+
* @param psbt A PSBT to sign
|
|
34
|
+
* @param signInputs Indices of the inputs to sign
|
|
35
|
+
*/
|
|
14
36
|
signPsbt(psbt: Transaction, signInputs: number[]): Promise<Transaction>;
|
|
37
|
+
/**
|
|
38
|
+
* Returns the current fee rate in sats/vB
|
|
39
|
+
*/
|
|
15
40
|
getFeeRate(): Promise<number>;
|
|
41
|
+
/**
|
|
42
|
+
* Estimates a total fee in satoshis for a given transaction
|
|
43
|
+
*
|
|
44
|
+
* @param address Destination address of the transaction
|
|
45
|
+
* @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
|
|
46
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
47
|
+
*/
|
|
16
48
|
getTransactionFee(address: string, amount: bigint, feeRate?: number): Promise<number>;
|
|
49
|
+
/**
|
|
50
|
+
* Estimates a total fee in satoshis for a given transaction as identified by the PSBT
|
|
51
|
+
*
|
|
52
|
+
* @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
|
|
53
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
54
|
+
*/
|
|
17
55
|
getFundedPsbtFee(psbt: Transaction, feeRate?: number): Promise<number>;
|
|
56
|
+
/**
|
|
57
|
+
* Returns the bitcoin address suitable for receiving funds
|
|
58
|
+
*/
|
|
18
59
|
getReceiveAddress(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Returns confirmed and unconfirmed balance in satoshis of the wallet
|
|
62
|
+
*/
|
|
19
63
|
getBalance(): Promise<{
|
|
20
64
|
confirmedBalance: bigint;
|
|
21
65
|
unconfirmedBalance: bigint;
|
|
22
66
|
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the maximum spendable balance in satoshis given a specific PSBT that should be funded
|
|
69
|
+
*
|
|
70
|
+
* @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
|
|
71
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
72
|
+
*/
|
|
23
73
|
getSpendableBalance(psbt?: Transaction, feeRate?: number): Promise<{
|
|
24
74
|
balance: bigint;
|
|
25
75
|
feeRate: number;
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isIBitcoinWallet = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Type guard to check if an object implements IBitcoinWallet
|
|
5
|
+
* Type guard to check if an object implements {@link IBitcoinWallet}
|
|
6
|
+
*
|
|
6
7
|
* @category Bitcoin
|
|
7
8
|
*/
|
|
8
9
|
function isIBitcoinWallet(val) {
|
|
@@ -4,37 +4,72 @@ import { Transaction } from "@scure/btc-signer";
|
|
|
4
4
|
import { BitcoinWallet } from "./BitcoinWallet";
|
|
5
5
|
import { BitcoinRpcWithAddressIndex } from "@atomiqlabs/base";
|
|
6
6
|
/**
|
|
7
|
-
* Bitcoin wallet implementation
|
|
7
|
+
* Bitcoin wallet implementation deriving a single address from a WIF encoded private key
|
|
8
|
+
*
|
|
8
9
|
* @category Bitcoin
|
|
9
10
|
*/
|
|
10
11
|
export declare class SingleAddressBitcoinWallet extends BitcoinWallet {
|
|
11
|
-
readonly privKey?: Uint8Array;
|
|
12
|
-
readonly pubkey: Uint8Array;
|
|
13
|
-
readonly address: string;
|
|
14
|
-
readonly addressType: CoinselectAddressTypes;
|
|
12
|
+
protected readonly privKey?: Uint8Array;
|
|
13
|
+
protected readonly pubkey: Uint8Array;
|
|
14
|
+
protected readonly address: string;
|
|
15
|
+
protected readonly addressType: CoinselectAddressTypes;
|
|
15
16
|
constructor(mempoolApi: BitcoinRpcWithAddressIndex<any>, network: BTC_NETWORK, addressDataOrWIF: string | {
|
|
16
17
|
address: string;
|
|
17
18
|
publicKey: string;
|
|
18
19
|
}, feeMultiplier?: number, feeOverride?: number);
|
|
19
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Returns all the wallet addresses controlled by the wallet
|
|
22
|
+
*
|
|
23
|
+
* @protected
|
|
24
|
+
*/
|
|
25
|
+
protected toBitcoinWalletAccounts(): [{
|
|
20
26
|
pubkey: string;
|
|
21
27
|
address: string;
|
|
22
28
|
addressType: CoinselectAddressTypes;
|
|
23
|
-
}
|
|
29
|
+
}];
|
|
30
|
+
/**
|
|
31
|
+
* @inheritDoc
|
|
32
|
+
*/
|
|
24
33
|
sendTransaction(address: string, amount: bigint, feeRate?: number): Promise<string>;
|
|
34
|
+
/**
|
|
35
|
+
* @inheritDoc
|
|
36
|
+
*/
|
|
25
37
|
fundPsbt(inputPsbt: Transaction, feeRate?: number): Promise<Transaction>;
|
|
38
|
+
/**
|
|
39
|
+
* @inheritDoc
|
|
40
|
+
*/
|
|
26
41
|
signPsbt(psbt: Transaction, signInputs: number[]): Promise<Transaction>;
|
|
42
|
+
/**
|
|
43
|
+
* @inheritDoc
|
|
44
|
+
*/
|
|
27
45
|
getTransactionFee(address: string, amount: bigint, feeRate?: number): Promise<number>;
|
|
46
|
+
/**
|
|
47
|
+
* @inheritDoc
|
|
48
|
+
*/
|
|
28
49
|
getFundedPsbtFee(basePsbt: Transaction, feeRate?: number): Promise<number>;
|
|
50
|
+
/**
|
|
51
|
+
* @inheritDoc
|
|
52
|
+
*/
|
|
29
53
|
getReceiveAddress(): string;
|
|
54
|
+
/**
|
|
55
|
+
* @inheritDoc
|
|
56
|
+
*/
|
|
30
57
|
getBalance(): Promise<{
|
|
31
58
|
confirmedBalance: bigint;
|
|
32
59
|
unconfirmedBalance: bigint;
|
|
33
60
|
}>;
|
|
61
|
+
/**
|
|
62
|
+
* @inheritDoc
|
|
63
|
+
*/
|
|
34
64
|
getSpendableBalance(psbt?: Transaction, feeRate?: number): Promise<{
|
|
35
65
|
balance: bigint;
|
|
36
66
|
feeRate: number;
|
|
37
67
|
totalFee: number;
|
|
38
68
|
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Generates a new random private key WIF that can be used to instantiate the bitcoin wallet instance
|
|
71
|
+
*
|
|
72
|
+
* @returns A WIF encoded bitcoin private key
|
|
73
|
+
*/
|
|
39
74
|
static generateRandomPrivateKey(network?: BTC_NETWORK): string;
|
|
40
75
|
}
|
|
@@ -6,7 +6,8 @@ const btc_signer_1 = require("@scure/btc-signer");
|
|
|
6
6
|
const buffer_1 = require("buffer");
|
|
7
7
|
const BitcoinWallet_1 = require("./BitcoinWallet");
|
|
8
8
|
/**
|
|
9
|
-
* Bitcoin wallet implementation
|
|
9
|
+
* Bitcoin wallet implementation deriving a single address from a WIF encoded private key
|
|
10
|
+
*
|
|
10
11
|
* @category Bitcoin
|
|
11
12
|
*/
|
|
12
13
|
class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
|
|
@@ -31,11 +32,19 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
|
|
|
31
32
|
}
|
|
32
33
|
this.addressType = (0, BitcoinWallet_1.identifyAddressType)(this.address, network);
|
|
33
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns all the wallet addresses controlled by the wallet
|
|
37
|
+
*
|
|
38
|
+
* @protected
|
|
39
|
+
*/
|
|
34
40
|
toBitcoinWalletAccounts() {
|
|
35
41
|
return [{
|
|
36
42
|
pubkey: buffer_1.Buffer.from(this.pubkey).toString("hex"), address: this.address, addressType: this.addressType
|
|
37
43
|
}];
|
|
38
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* @inheritDoc
|
|
47
|
+
*/
|
|
39
48
|
async sendTransaction(address, amount, feeRate) {
|
|
40
49
|
if (!this.privKey)
|
|
41
50
|
throw new Error("Not supported.");
|
|
@@ -47,6 +56,9 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
|
|
|
47
56
|
const txHex = buffer_1.Buffer.from(psbt.extract()).toString("hex");
|
|
48
57
|
return await super._sendTransaction(txHex);
|
|
49
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* @inheritDoc
|
|
61
|
+
*/
|
|
50
62
|
async fundPsbt(inputPsbt, feeRate) {
|
|
51
63
|
const { psbt } = await super._fundPsbt(this.toBitcoinWalletAccounts(), inputPsbt, feeRate);
|
|
52
64
|
if (psbt == null) {
|
|
@@ -54,6 +66,9 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
|
|
|
54
66
|
}
|
|
55
67
|
return psbt;
|
|
56
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* @inheritDoc
|
|
71
|
+
*/
|
|
57
72
|
async signPsbt(psbt, signInputs) {
|
|
58
73
|
if (!this.privKey)
|
|
59
74
|
throw new Error("Not supported.");
|
|
@@ -62,23 +77,43 @@ class SingleAddressBitcoinWallet extends BitcoinWallet_1.BitcoinWallet {
|
|
|
62
77
|
}
|
|
63
78
|
return psbt;
|
|
64
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* @inheritDoc
|
|
82
|
+
*/
|
|
65
83
|
async getTransactionFee(address, amount, feeRate) {
|
|
66
84
|
const { fee } = await super._getPsbt(this.toBitcoinWalletAccounts(), address, Number(amount), feeRate);
|
|
67
85
|
return fee;
|
|
68
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* @inheritDoc
|
|
89
|
+
*/
|
|
69
90
|
async getFundedPsbtFee(basePsbt, feeRate) {
|
|
70
91
|
const { fee } = await super._fundPsbt(this.toBitcoinWalletAccounts(), basePsbt, feeRate);
|
|
71
92
|
return fee;
|
|
72
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* @inheritDoc
|
|
96
|
+
*/
|
|
73
97
|
getReceiveAddress() {
|
|
74
98
|
return this.address;
|
|
75
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* @inheritDoc
|
|
102
|
+
*/
|
|
76
103
|
getBalance() {
|
|
77
104
|
return this._getBalance(this.address);
|
|
78
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* @inheritDoc
|
|
108
|
+
*/
|
|
79
109
|
getSpendableBalance(psbt, feeRate) {
|
|
80
110
|
return this._getSpendableBalance([{ address: this.address, addressType: this.addressType }], psbt, feeRate);
|
|
81
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Generates a new random private key WIF that can be used to instantiate the bitcoin wallet instance
|
|
114
|
+
*
|
|
115
|
+
* @returns A WIF encoded bitcoin private key
|
|
116
|
+
*/
|
|
82
117
|
static generateRandomPrivateKey(network) {
|
|
83
118
|
return (0, btc_signer_1.WIF)(network).encode((0, utils_1.randomPrivateKeyBytes)());
|
|
84
119
|
}
|
package/dist/enums/FeeType.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Enum representing types of fees in a swap
|
|
3
|
+
*
|
|
3
4
|
* @category Pricing and LPs
|
|
4
5
|
*/
|
|
5
6
|
export declare enum FeeType {
|
|
7
|
+
/**
|
|
8
|
+
* Swap fee taken by the LP
|
|
9
|
+
*/
|
|
6
10
|
SWAP = 0,
|
|
11
|
+
/**
|
|
12
|
+
* Network fee to cover the transactions on the destination (output) network
|
|
13
|
+
*/
|
|
7
14
|
NETWORK_OUTPUT = 1
|
|
8
15
|
}
|
package/dist/enums/FeeType.js
CHANGED
|
@@ -3,10 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FeeType = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Enum representing types of fees in a swap
|
|
6
|
+
*
|
|
6
7
|
* @category Pricing and LPs
|
|
7
8
|
*/
|
|
8
9
|
var FeeType;
|
|
9
10
|
(function (FeeType) {
|
|
11
|
+
/**
|
|
12
|
+
* Swap fee taken by the LP
|
|
13
|
+
*/
|
|
10
14
|
FeeType[FeeType["SWAP"] = 0] = "SWAP";
|
|
15
|
+
/**
|
|
16
|
+
* Network fee to cover the transactions on the destination (output) network
|
|
17
|
+
*/
|
|
11
18
|
FeeType[FeeType["NETWORK_OUTPUT"] = 1] = "NETWORK_OUTPUT";
|
|
12
19
|
})(FeeType = exports.FeeType || (exports.FeeType = {}));
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Enum representing whether the swap amount is exact input or exact output
|
|
3
|
+
*
|
|
3
4
|
* @category Core
|
|
4
5
|
*/
|
|
5
6
|
export declare enum SwapAmountType {
|
|
7
|
+
/**
|
|
8
|
+
* Swap amount specified in the input token
|
|
9
|
+
*/
|
|
6
10
|
EXACT_IN = 1,
|
|
11
|
+
/**
|
|
12
|
+
* Swap amount specified in the output token
|
|
13
|
+
*/
|
|
7
14
|
EXACT_OUT = 0
|
|
8
15
|
}
|
|
@@ -3,10 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SwapAmountType = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Enum representing whether the swap amount is exact input or exact output
|
|
6
|
+
*
|
|
6
7
|
* @category Core
|
|
7
8
|
*/
|
|
8
9
|
var SwapAmountType;
|
|
9
10
|
(function (SwapAmountType) {
|
|
11
|
+
/**
|
|
12
|
+
* Swap amount specified in the input token
|
|
13
|
+
*/
|
|
10
14
|
SwapAmountType[SwapAmountType["EXACT_IN"] = 1] = "EXACT_IN";
|
|
15
|
+
/**
|
|
16
|
+
* Swap amount specified in the output token
|
|
17
|
+
*/
|
|
11
18
|
SwapAmountType[SwapAmountType["EXACT_OUT"] = 0] = "EXACT_OUT";
|
|
12
19
|
})(SwapAmountType = exports.SwapAmountType || (exports.SwapAmountType = {}));
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Enum representing the direction of a swap (from or to Bitcoin)
|
|
3
|
+
*
|
|
3
4
|
* @category Core
|
|
4
5
|
*/
|
|
5
6
|
export declare enum SwapDirection {
|
|
7
|
+
/**
|
|
8
|
+
* Swaps from bitcoin to smart chains (Solana, Starknet, EVM, etc.)
|
|
9
|
+
*/
|
|
6
10
|
FROM_BTC = 0,
|
|
11
|
+
/**
|
|
12
|
+
* Swaps from smart chains (Solana, Starknet, EVM, etc.) to bitcoin
|
|
13
|
+
*/
|
|
7
14
|
TO_BTC = 1
|
|
8
15
|
}
|
|
@@ -3,10 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SwapDirection = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Enum representing the direction of a swap (from or to Bitcoin)
|
|
6
|
+
*
|
|
6
7
|
* @category Core
|
|
7
8
|
*/
|
|
8
9
|
var SwapDirection;
|
|
9
10
|
(function (SwapDirection) {
|
|
11
|
+
/**
|
|
12
|
+
* Swaps from bitcoin to smart chains (Solana, Starknet, EVM, etc.)
|
|
13
|
+
*/
|
|
10
14
|
SwapDirection[SwapDirection["FROM_BTC"] = 0] = "FROM_BTC";
|
|
15
|
+
/**
|
|
16
|
+
* Swaps from smart chains (Solana, Starknet, EVM, etc.) to bitcoin
|
|
17
|
+
*/
|
|
11
18
|
SwapDirection[SwapDirection["TO_BTC"] = 1] = "TO_BTC";
|
|
12
19
|
})(SwapDirection = exports.SwapDirection || (exports.SwapDirection = {}));
|
package/dist/enums/SwapType.d.ts
CHANGED
|
@@ -1,14 +1,75 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Enum representing different types of
|
|
2
|
+
* Enum representing different types of swap protocols used by atomiq.
|
|
3
|
+
*
|
|
3
4
|
* @category Core
|
|
4
5
|
*/
|
|
5
6
|
export declare enum SwapType {
|
|
7
|
+
/**
|
|
8
|
+
* Legacy escrow (PrTLC) based swap for Bitcoin -> Smart chains, requires manual initiation of the swap
|
|
9
|
+
* on the destination chain.
|
|
10
|
+
*
|
|
11
|
+
* Handled by {@link FromBTCWrapper} & {@link FromBTCSwap}.
|
|
12
|
+
*
|
|
13
|
+
* Legacy swaps are only used on Solana!
|
|
14
|
+
*/
|
|
6
15
|
FROM_BTC = 0,
|
|
16
|
+
/**
|
|
17
|
+
* Legacy escrow (HTLC) based swap for Bitcoin Lightning -> Smart chains, requires manual settlement of the swap on the
|
|
18
|
+
* destination network once the lightning network payment is received by the LP
|
|
19
|
+
*
|
|
20
|
+
* Handled by {@link FromBTCLNWrapper} & {@link FromBTCLNSwap}.
|
|
21
|
+
*
|
|
22
|
+
* Legacy swaps are only used on Solana!
|
|
23
|
+
*/
|
|
7
24
|
FROM_BTCLN = 1,
|
|
25
|
+
/**
|
|
26
|
+
* Escrow based (PrTLC) swap for Smart chains -> Bitcoin
|
|
27
|
+
*
|
|
28
|
+
* Handled by {@link ToBTCWrapper} & {@link ToBTCSwap}.
|
|
29
|
+
*/
|
|
8
30
|
TO_BTC = 2,
|
|
31
|
+
/**
|
|
32
|
+
* Escrow based (HTLC) swap for Smart chains -> Bitcoin Lightning
|
|
33
|
+
*
|
|
34
|
+
* Handled by {@link ToBTCLNWrapper} & {@link ToBTCLNSwap}.
|
|
35
|
+
*/
|
|
9
36
|
TO_BTCLN = 3,
|
|
37
|
+
/**
|
|
38
|
+
* Trusted swap for Bitcoin -> Smart chains, to be used for minor amounts to get gas tokens on the destination
|
|
39
|
+
* chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
|
|
40
|
+
* {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
|
|
41
|
+
*
|
|
42
|
+
* Handled by {@link OnchainForGasWrapper} & {@link OnchainForGasSwap}.
|
|
43
|
+
*/
|
|
10
44
|
TRUSTED_FROM_BTC = 4,
|
|
45
|
+
/**
|
|
46
|
+
* Trusted swap for Bitcoin Lightning -> Smart chains, to be used for minor amounts to get gas tokens on the
|
|
47
|
+
* destination chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
|
|
48
|
+
* {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
|
|
49
|
+
*
|
|
50
|
+
* Handled by {@link LnForGasWrapper} & {@link LnForGasSwap}.
|
|
51
|
+
*/
|
|
11
52
|
TRUSTED_FROM_BTCLN = 5,
|
|
53
|
+
/**
|
|
54
|
+
* New spv vault (UTXO-controlled vault) based swaps for Bitcoin -> Smart chain swaps not requiring any
|
|
55
|
+
* initiation on the destination chain, and with the added possibility for the user to receive a
|
|
56
|
+
* native token on the destination chain as part of the swap (a "gas drop" feature).
|
|
57
|
+
*
|
|
58
|
+
* Handled by {@link SpvFromBTCWrapper} & {@link SpvFromBTCSwap}.
|
|
59
|
+
*
|
|
60
|
+
* Used on all the supported chains except Solana!
|
|
61
|
+
*/
|
|
12
62
|
SPV_VAULT_FROM_BTC = 6,
|
|
63
|
+
/**
|
|
64
|
+
* New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual
|
|
65
|
+
* settlement on the destination by the user, and instead letting the LP initiate the escrow,
|
|
66
|
+
* with the permissionless watchtower network managing the claiming of HTLC, with the swap secret
|
|
67
|
+
* broadcasted over Nostr. Also adds a possibility for the user to receive a native token on the
|
|
68
|
+
* destination chain as part of the swap (a "gas drop" feature).
|
|
69
|
+
*
|
|
70
|
+
* Handled by {@link FromBTCLNAutoWrapper} & {@link FromBTCLNAutoSwap}.
|
|
71
|
+
*
|
|
72
|
+
* Used on all the supported chains except Solana!
|
|
73
|
+
*/
|
|
13
74
|
FROM_BTCLN_AUTO = 7
|
|
14
75
|
}
|
package/dist/enums/SwapType.js
CHANGED
|
@@ -2,17 +2,78 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SwapType = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Enum representing different types of
|
|
5
|
+
* Enum representing different types of swap protocols used by atomiq.
|
|
6
|
+
*
|
|
6
7
|
* @category Core
|
|
7
8
|
*/
|
|
8
9
|
var SwapType;
|
|
9
10
|
(function (SwapType) {
|
|
11
|
+
/**
|
|
12
|
+
* Legacy escrow (PrTLC) based swap for Bitcoin -> Smart chains, requires manual initiation of the swap
|
|
13
|
+
* on the destination chain.
|
|
14
|
+
*
|
|
15
|
+
* Handled by {@link FromBTCWrapper} & {@link FromBTCSwap}.
|
|
16
|
+
*
|
|
17
|
+
* Legacy swaps are only used on Solana!
|
|
18
|
+
*/
|
|
10
19
|
SwapType[SwapType["FROM_BTC"] = 0] = "FROM_BTC";
|
|
20
|
+
/**
|
|
21
|
+
* Legacy escrow (HTLC) based swap for Bitcoin Lightning -> Smart chains, requires manual settlement of the swap on the
|
|
22
|
+
* destination network once the lightning network payment is received by the LP
|
|
23
|
+
*
|
|
24
|
+
* Handled by {@link FromBTCLNWrapper} & {@link FromBTCLNSwap}.
|
|
25
|
+
*
|
|
26
|
+
* Legacy swaps are only used on Solana!
|
|
27
|
+
*/
|
|
11
28
|
SwapType[SwapType["FROM_BTCLN"] = 1] = "FROM_BTCLN";
|
|
29
|
+
/**
|
|
30
|
+
* Escrow based (PrTLC) swap for Smart chains -> Bitcoin
|
|
31
|
+
*
|
|
32
|
+
* Handled by {@link ToBTCWrapper} & {@link ToBTCSwap}.
|
|
33
|
+
*/
|
|
12
34
|
SwapType[SwapType["TO_BTC"] = 2] = "TO_BTC";
|
|
35
|
+
/**
|
|
36
|
+
* Escrow based (HTLC) swap for Smart chains -> Bitcoin Lightning
|
|
37
|
+
*
|
|
38
|
+
* Handled by {@link ToBTCLNWrapper} & {@link ToBTCLNSwap}.
|
|
39
|
+
*/
|
|
13
40
|
SwapType[SwapType["TO_BTCLN"] = 3] = "TO_BTCLN";
|
|
41
|
+
/**
|
|
42
|
+
* Trusted swap for Bitcoin -> Smart chains, to be used for minor amounts to get gas tokens on the destination
|
|
43
|
+
* chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
|
|
44
|
+
* {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
|
|
45
|
+
*
|
|
46
|
+
* Handled by {@link OnchainForGasWrapper} & {@link OnchainForGasSwap}.
|
|
47
|
+
*/
|
|
14
48
|
SwapType[SwapType["TRUSTED_FROM_BTC"] = 4] = "TRUSTED_FROM_BTC";
|
|
49
|
+
/**
|
|
50
|
+
* Trusted swap for Bitcoin Lightning -> Smart chains, to be used for minor amounts to get gas tokens on the
|
|
51
|
+
* destination chain, which is only needed for Solana, which still uses legacy swaps and doesn't support newer
|
|
52
|
+
* {@link SPV_VAULT_FROM_BTC} & {@link FROM_BTCLN_AUTO} swaps.
|
|
53
|
+
*
|
|
54
|
+
* Handled by {@link LnForGasWrapper} & {@link LnForGasSwap}.
|
|
55
|
+
*/
|
|
15
56
|
SwapType[SwapType["TRUSTED_FROM_BTCLN"] = 5] = "TRUSTED_FROM_BTCLN";
|
|
57
|
+
/**
|
|
58
|
+
* New spv vault (UTXO-controlled vault) based swaps for Bitcoin -> Smart chain swaps not requiring any
|
|
59
|
+
* initiation on the destination chain, and with the added possibility for the user to receive a
|
|
60
|
+
* native token on the destination chain as part of the swap (a "gas drop" feature).
|
|
61
|
+
*
|
|
62
|
+
* Handled by {@link SpvFromBTCWrapper} & {@link SpvFromBTCSwap}.
|
|
63
|
+
*
|
|
64
|
+
* Used on all the supported chains except Solana!
|
|
65
|
+
*/
|
|
16
66
|
SwapType[SwapType["SPV_VAULT_FROM_BTC"] = 6] = "SPV_VAULT_FROM_BTC";
|
|
67
|
+
/**
|
|
68
|
+
* New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual
|
|
69
|
+
* settlement on the destination by the user, and instead letting the LP initiate the escrow,
|
|
70
|
+
* with the permissionless watchtower network managing the claiming of HTLC, with the swap secret
|
|
71
|
+
* broadcasted over Nostr. Also adds a possibility for the user to receive a native token on the
|
|
72
|
+
* destination chain as part of the swap (a "gas drop" feature).
|
|
73
|
+
*
|
|
74
|
+
* Handled by {@link FromBTCLNAutoWrapper} & {@link FromBTCLNAutoSwap}.
|
|
75
|
+
*
|
|
76
|
+
* Used on all the supported chains except Solana!
|
|
77
|
+
*/
|
|
17
78
|
SwapType[SwapType["FROM_BTCLN_AUTO"] = 7] = "FROM_BTCLN_AUTO";
|
|
18
79
|
})(SwapType = exports.SwapType || (exports.SwapType = {}));
|