@atomiqlabs/sdk 8.1.8 → 8.3.5
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/coinselect2/utils.d.ts +6 -0
- 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 +8 -1
- package/dist/enums/FeeType.js +8 -1
- 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 +5 -5
- package/dist/index.js +7 -6
- package/dist/intermediaries/Intermediary.d.ts +61 -14
- package/dist/intermediaries/Intermediary.js +38 -11
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +62 -29
- package/dist/intermediaries/IntermediaryDiscovery.js +39 -24
- package/dist/prices/RedundantSwapPrice.d.ts +26 -5
- package/dist/prices/RedundantSwapPrice.js +22 -2
- package/dist/prices/SingleSwapPrice.d.ts +10 -7
- package/dist/prices/SingleSwapPrice.js +11 -8
- package/dist/prices/SwapPriceWithChain.d.ts +56 -19
- package/dist/prices/SwapPriceWithChain.js +62 -25
- package/dist/prices/abstract/IPriceProvider.d.ts +4 -4
- package/dist/prices/abstract/IPriceProvider.js +1 -1
- package/dist/prices/abstract/ISwapPrice.d.ts +95 -46
- package/dist/prices/abstract/ISwapPrice.js +104 -56
- package/dist/prices/providers/BinancePriceProvider.d.ts +8 -1
- package/dist/prices/providers/BinancePriceProvider.js +8 -1
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +7 -1
- package/dist/prices/providers/CoinGeckoPriceProvider.js +7 -1
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +7 -1
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +7 -1
- package/dist/prices/providers/CustomPriceProvider.d.ts +12 -1
- package/dist/prices/providers/CustomPriceProvider.js +12 -1
- package/dist/prices/providers/KrakenPriceProvider.d.ts +10 -1
- package/dist/prices/providers/KrakenPriceProvider.js +10 -1
- package/dist/prices/providers/OKXPriceProvider.d.ts +7 -1
- package/dist/prices/providers/OKXPriceProvider.js +7 -1
- 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 +380 -226
- package/dist/swapper/Swapper.js +383 -349
- package/dist/swapper/SwapperFactory.d.ts +66 -18
- package/dist/swapper/SwapperFactory.js +24 -3
- 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 +12 -3
- package/dist/swaps/IAddressSwap.js +3 -2
- package/dist/swaps/IBTCWalletSwap.d.ts +26 -8
- package/dist/swaps/IBTCWalletSwap.js +3 -2
- package/dist/swaps/IClaimableSwap.d.ts +38 -6
- package/dist/swaps/IClaimableSwap.js +3 -2
- package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
- package/dist/swaps/IRefundableSwap.d.ts +31 -5
- package/dist/swaps/IRefundableSwap.js +3 -2
- package/dist/swaps/ISwap.d.ts +162 -24
- package/dist/swaps/ISwap.js +92 -35
- package/dist/swaps/ISwapWithGasDrop.d.ts +8 -2
- package/dist/swaps/ISwapWithGasDrop.js +2 -1
- package/dist/swaps/ISwapWrapper.d.ts +161 -52
- package/dist/swaps/ISwapWrapper.js +131 -73
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +51 -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 +97 -28
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +91 -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 +278 -60
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +519 -241
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +77 -26
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +132 -50
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +313 -52
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +544 -194
- 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 +222 -55
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +462 -244
- 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 +195 -58
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +324 -191
- 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 +61 -20
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +75 -32
- 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 +37 -14
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +66 -20
- 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 +350 -88
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +482 -215
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +247 -124
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +148 -20
- package/dist/swaps/trusted/ln/LnForGasSwap.js +175 -45
- 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 +202 -49
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +232 -80
- 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 +8 -2
- package/dist/types/PriceInfoType.d.ts +4 -4
- package/dist/types/PriceInfoType.js +3 -3
- package/dist/types/SwapExecutionAction.d.ts +85 -4
- package/dist/types/SwapWithSigner.d.ts +5 -2
- 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 +3 -2
- package/dist/types/fees/FeeBreakdown.d.ts +3 -2
- package/dist/types/fees/PercentagePPM.d.ts +4 -2
- package/dist/types/fees/PercentagePPM.js +2 -1
- package/dist/types/lnurl/LNURLPay.d.ts +20 -12
- package/dist/types/lnurl/LNURLPay.js +8 -4
- package/dist/types/lnurl/LNURLWithdraw.d.ts +17 -10
- package/dist/types/lnurl/LNURLWithdraw.js +8 -4
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -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 +4 -2
- package/dist/utils/BitcoinUtils.d.ts +1 -0
- package/dist/utils/BitcoinUtils.js +5 -1
- package/dist/utils/SwapUtils.d.ts +58 -1
- package/dist/utils/SwapUtils.js +55 -1
- package/dist/utils/TokenUtils.d.ts +10 -2
- package/dist/utils/TokenUtils.js +12 -4
- package/package.json +3 -3
- package/src/bitcoin/coinselect2/utils.ts +6 -0
- 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 +8 -1
- 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 +12 -5
- package/src/intermediaries/Intermediary.ts +61 -14
- package/src/intermediaries/IntermediaryDiscovery.ts +69 -34
- package/src/prices/RedundantSwapPrice.ts +26 -6
- package/src/prices/SingleSwapPrice.ts +11 -8
- package/src/prices/SwapPriceWithChain.ts +63 -26
- package/src/prices/abstract/IPriceProvider.ts +4 -4
- package/src/prices/abstract/ISwapPrice.ts +115 -66
- package/src/prices/providers/BinancePriceProvider.ts +8 -1
- package/src/prices/providers/CoinGeckoPriceProvider.ts +7 -1
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +7 -1
- package/src/prices/providers/CustomPriceProvider.ts +12 -1
- package/src/prices/providers/KrakenPriceProvider.ts +10 -1
- package/src/prices/providers/OKXPriceProvider.ts +7 -1
- 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 +599 -390
- package/src/swapper/SwapperFactory.ts +73 -24
- 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 +13 -3
- package/src/swaps/IBTCWalletSwap.ts +26 -10
- package/src/swaps/IClaimableSwap.ts +41 -6
- package/src/swaps/IClaimableSwapWrapper.ts +11 -2
- package/src/swaps/IRefundableSwap.ts +34 -5
- package/src/swaps/ISwap.ts +224 -85
- package/src/swaps/ISwapWithGasDrop.ts +8 -2
- package/src/swaps/ISwapWrapper.ts +216 -98
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +64 -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 +123 -50
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +562 -258
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +156 -62
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +592 -227
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +483 -245
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +350 -195
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +87 -40
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +89 -34
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +556 -259
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +292 -148
- package/src/swaps/trusted/ln/LnForGasSwap.ts +186 -47
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +262 -88
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
- package/src/types/AmountData.ts +2 -1
- package/src/types/CustomPriceFunction.ts +8 -2
- package/src/types/PriceInfoType.ts +4 -4
- package/src/types/SwapExecutionAction.ts +97 -5
- package/src/types/SwapWithSigner.ts +8 -4
- package/src/types/Token.ts +12 -5
- package/src/types/TokenAmount.ts +3 -0
- package/src/types/fees/Fee.ts +3 -2
- package/src/types/fees/FeeBreakdown.ts +3 -2
- package/src/types/fees/PercentagePPM.ts +4 -2
- package/src/types/lnurl/LNURLPay.ts +20 -12
- package/src/types/lnurl/LNURLWithdraw.ts +17 -10
- package/src/types/wallets/LightningInvoiceCreateService.ts +30 -0
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +4 -2
- package/src/utils/BitcoinUtils.ts +5 -0
- package/src/utils/SwapUtils.ts +63 -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
|
@@ -5,6 +5,18 @@ import { SwapType } from "../enums/SwapType";
|
|
|
5
5
|
import { SwapTypeMapping } from "../utils/SwapUtils";
|
|
6
6
|
import { CustomPriceFunction } from "../types/CustomPriceFunction";
|
|
7
7
|
import { MempoolApi, MempoolBitcoinRpc } from "@atomiqlabs/btc-mempool";
|
|
8
|
+
/**
|
|
9
|
+
* Token definitions for a specific chain
|
|
10
|
+
*/
|
|
11
|
+
type TypedChainTokens<T extends ChainInitializer<any, any, any>> = {
|
|
12
|
+
[val in keyof T["tokens"]]: SCToken<T["chainId"]>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Token resolver for a specific chain
|
|
16
|
+
*/
|
|
17
|
+
type TypedChainTokenResolver<T extends ChainInitializer<any, any, any>> = {
|
|
18
|
+
getToken: (address: string) => SCToken<T["chainId"]>;
|
|
19
|
+
};
|
|
8
20
|
type ChainTypeDict<T extends ChainInitializer<any, any, any>> = {
|
|
9
21
|
[K in T["chainId"]]: T["chainType"];
|
|
10
22
|
};
|
|
@@ -21,38 +33,51 @@ type OptionsDict<T extends ChainInitializer<any, any, any>> = {
|
|
|
21
33
|
};
|
|
22
34
|
type GetAllOptions<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? OptionsDict<First> & GetAllOptions<Rest> : unknown);
|
|
23
35
|
/**
|
|
24
|
-
* Configuration options for creating a
|
|
36
|
+
* Configuration options for creating a Swapper instance
|
|
37
|
+
*
|
|
25
38
|
* @category Core
|
|
26
39
|
*/
|
|
27
40
|
export type TypedSwapperOptions<T extends readonly ChainInitializer<any, any, any>[]> = {
|
|
41
|
+
/**
|
|
42
|
+
* A dictionary with chain-specific settings, like RPC URLs and others
|
|
43
|
+
*/
|
|
28
44
|
chains: GetAllOptions<T>;
|
|
29
|
-
|
|
45
|
+
/**
|
|
46
|
+
* A function callback to retrieve a specific named storage container for key-value persistency. If not present, the
|
|
47
|
+
* default browser Local Storage adapter is used. When you use the SDK in non-browser based environments you need
|
|
48
|
+
* to provide this callback such that the SDK is able to use a custom storage adapter.
|
|
49
|
+
*
|
|
50
|
+
* @param storageName Name of the container to retrieve
|
|
51
|
+
*/
|
|
52
|
+
chainStorageCtor?: <T extends StorageObject>(storageName: string) => IStorageManager<T>;
|
|
53
|
+
/**
|
|
54
|
+
* Maximum allowed pricing difference between intermediary (LP) returned rate and current market rate. In
|
|
55
|
+
* parts-per-million, e.g. 2% is written as `20000`.
|
|
56
|
+
*/
|
|
30
57
|
pricingFeeDifferencePPM?: bigint;
|
|
58
|
+
/**
|
|
59
|
+
* Optional pricing function to use instead of default pricing APIs. See {@link CustomPriceFunction} for details.
|
|
60
|
+
*/
|
|
31
61
|
getPriceFn?: CustomPriceFunction;
|
|
62
|
+
/**
|
|
63
|
+
* Mempool API instance or URLs to use, if not provided the defaults will be used for the specified bitcoin network
|
|
64
|
+
*/
|
|
32
65
|
mempoolApi?: MempoolApi | MempoolBitcoinRpc | string | string[];
|
|
66
|
+
/**
|
|
67
|
+
* Data propagation messenger instance to use for broadcasting data to watchtowers. By default, a Nostr-based
|
|
68
|
+
* messenger is used.
|
|
69
|
+
*/
|
|
33
70
|
messenger?: Messenger;
|
|
34
71
|
} & SwapperOptions;
|
|
35
72
|
/**
|
|
36
|
-
* Token
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
export type TypedChainTokenResolver<T extends ChainInitializer<any, any, any>> = {
|
|
40
|
-
getToken: (address: string) => SCToken<T["chainId"]>;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* Token resolvers for all chains
|
|
73
|
+
* Token resolvers for all chains, resolve tokens based on their address
|
|
74
|
+
*
|
|
44
75
|
* @category Core
|
|
45
76
|
*/
|
|
46
77
|
export type TypedTokenResolvers<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? TokenResolverDict<First> & TypedTokenResolvers<Rest> : unknown);
|
|
47
|
-
/**
|
|
48
|
-
* Token definitions for a specific chain
|
|
49
|
-
* @category Core
|
|
50
|
-
*/
|
|
51
|
-
export type TypedChainTokens<T extends ChainInitializer<any, any, any>> = {
|
|
52
|
-
[val in keyof T["tokens"]]: SCToken<T["chainId"]>;
|
|
53
|
-
};
|
|
54
78
|
/**
|
|
55
79
|
* All tokens including Bitcoin tokens
|
|
80
|
+
*
|
|
56
81
|
* @category Core
|
|
57
82
|
*/
|
|
58
83
|
export type TypedTokens<T extends readonly ChainInitializer<any, ChainType, any>[]> = GetAllTokens<T> & {
|
|
@@ -63,24 +88,47 @@ export type TypedTokens<T extends readonly ChainInitializer<any, ChainType, any>
|
|
|
63
88
|
};
|
|
64
89
|
/**
|
|
65
90
|
* Type alias for a Swapper instance with typed chain support
|
|
91
|
+
*
|
|
66
92
|
* @category Core
|
|
67
93
|
*/
|
|
68
94
|
export type TypedSwapper<T extends readonly ChainInitializer<any, ChainType, any>[]> = Swapper<ToMultichain<T>>;
|
|
69
95
|
/**
|
|
70
|
-
* Type alias for a specific swap type
|
|
96
|
+
* Type alias for a specific swap type
|
|
97
|
+
*
|
|
71
98
|
* @category Core
|
|
72
99
|
*/
|
|
73
100
|
export type TypedSwap<T extends ChainInitializer<any, ChainType, any>, S extends SwapType> = SwapTypeMapping<T["chainType"]>[S];
|
|
74
101
|
/**
|
|
75
102
|
* Factory class for creating and initializing Swapper instances with typed chain support
|
|
103
|
+
*
|
|
76
104
|
* @category Core
|
|
77
105
|
*/
|
|
78
106
|
export declare class SwapperFactory<T extends readonly ChainInitializer<any, ChainType, any>[]> {
|
|
79
107
|
readonly initializers: T;
|
|
108
|
+
/**
|
|
109
|
+
* All available tokens for the atomiq SDK
|
|
110
|
+
*/
|
|
80
111
|
Tokens: TypedTokens<T>;
|
|
112
|
+
/**
|
|
113
|
+
* Token resolvers for various smart chains supported by the SDK, allow fetching tokens based on their addresses
|
|
114
|
+
*/
|
|
81
115
|
TokenResolver: TypedTokenResolvers<T>;
|
|
82
116
|
constructor(initializers: T);
|
|
117
|
+
/**
|
|
118
|
+
* Returns a new swapper instance with the passed options.
|
|
119
|
+
*
|
|
120
|
+
* The swapper returned here is not yet initialized, be sure to call {@link Swapper.init}, before
|
|
121
|
+
* calling any other functions in the swapper instance.
|
|
122
|
+
*
|
|
123
|
+
* @param options Options for customizing the swapper instance
|
|
124
|
+
*/
|
|
83
125
|
newSwapper(options: TypedSwapperOptions<T>): TypedSwapper<T>;
|
|
126
|
+
/**
|
|
127
|
+
* Returns a new and already initialized swapper instance with the passed options. There is no need
|
|
128
|
+
* to call {@link Swapper.init} anymore.
|
|
129
|
+
*
|
|
130
|
+
* @param options Options for customizing the swapper instance
|
|
131
|
+
*/
|
|
84
132
|
newSwapperInitialized(options: TypedSwapperOptions<T>): Promise<TypedSwapper<T>>;
|
|
85
133
|
}
|
|
86
134
|
export {};
|
|
@@ -48,14 +48,21 @@ const nostrUrls = [
|
|
|
48
48
|
];
|
|
49
49
|
/**
|
|
50
50
|
* Factory class for creating and initializing Swapper instances with typed chain support
|
|
51
|
+
*
|
|
51
52
|
* @category Core
|
|
52
53
|
*/
|
|
53
54
|
class SwapperFactory {
|
|
54
55
|
constructor(initializers) {
|
|
55
56
|
this.initializers = initializers;
|
|
57
|
+
/**
|
|
58
|
+
* All available tokens for the atomiq SDK
|
|
59
|
+
*/
|
|
56
60
|
this.Tokens = {
|
|
57
61
|
BITCOIN: Token_1.BitcoinTokens
|
|
58
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* Token resolvers for various smart chains supported by the SDK, allow fetching tokens based on their addresses
|
|
65
|
+
*/
|
|
59
66
|
this.TokenResolver = {};
|
|
60
67
|
this.initializers = initializers;
|
|
61
68
|
initializers.forEach(initializer => {
|
|
@@ -78,6 +85,14 @@ class SwapperFactory {
|
|
|
78
85
|
};
|
|
79
86
|
});
|
|
80
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Returns a new swapper instance with the passed options.
|
|
90
|
+
*
|
|
91
|
+
* The swapper returned here is not yet initialized, be sure to call {@link Swapper.init}, before
|
|
92
|
+
* calling any other functions in the swapper instance.
|
|
93
|
+
*
|
|
94
|
+
* @param options Options for customizing the swapper instance
|
|
95
|
+
*/
|
|
81
96
|
newSwapper(options) {
|
|
82
97
|
options.bitcoinNetwork ??= base_1.BitcoinNetwork.MAINNET;
|
|
83
98
|
options.storagePrefix ??= "atomiqsdk-" + options.bitcoinNetwork + "-";
|
|
@@ -86,13 +101,13 @@ class SwapperFactory {
|
|
|
86
101
|
options.registryUrl ??= registries[options.bitcoinNetwork];
|
|
87
102
|
let bitcoinRpc;
|
|
88
103
|
if (options.mempoolApi != null) {
|
|
89
|
-
bitcoinRpc = options.mempoolApi instanceof btc_mempool_1.MempoolBitcoinRpc ? options.mempoolApi : new btc_mempool_1.MempoolBitcoinRpc(options.mempoolApi);
|
|
104
|
+
bitcoinRpc = options.mempoolApi instanceof btc_mempool_1.MempoolBitcoinRpc ? options.mempoolApi : new btc_mempool_1.MempoolBitcoinRpc(options.mempoolApi, options.bitcoinNetwork);
|
|
90
105
|
}
|
|
91
106
|
else {
|
|
92
107
|
const urls = mempoolUrls[options.bitcoinNetwork];
|
|
93
108
|
if (urls == null)
|
|
94
109
|
throw new Error(`No pre-configured urls for ${base_1.BitcoinNetwork[options.bitcoinNetwork]} network were found, please explicitly pass mempoolApi parameter!`);
|
|
95
|
-
bitcoinRpc = new btc_mempool_1.MempoolBitcoinRpc(urls);
|
|
110
|
+
bitcoinRpc = new btc_mempool_1.MempoolBitcoinRpc(urls, options.bitcoinNetwork);
|
|
96
111
|
}
|
|
97
112
|
const pricingAssets = [];
|
|
98
113
|
Object.keys(SmartChainAssets_1.SmartChainAssets).forEach((ticker) => {
|
|
@@ -125,8 +140,14 @@ class SwapperFactory {
|
|
|
125
140
|
};
|
|
126
141
|
}), options.getPriceFn)) :
|
|
127
142
|
RedundantSwapPrice_1.RedundantSwapPrice.createFromTokenMap(options.pricingFeeDifferencePPM ?? 10000n, pricingAssets);
|
|
128
|
-
return new Swapper_1.Swapper(bitcoinRpc, chains, swapPricing, pricingAssets, options.messenger, options);
|
|
143
|
+
return new Swapper_1.Swapper(bitcoinRpc, bitcoinRpc, (btcRelay) => new btc_mempool_1.MempoolBtcRelaySynchronizer(btcRelay, bitcoinRpc), chains, swapPricing, pricingAssets, options.messenger, options);
|
|
129
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Returns a new and already initialized swapper instance with the passed options. There is no need
|
|
147
|
+
* to call {@link Swapper.init} anymore.
|
|
148
|
+
*
|
|
149
|
+
* @param options Options for customizing the swapper instance
|
|
150
|
+
*/
|
|
130
151
|
async newSwapperInitialized(options) {
|
|
131
152
|
const swapper = this.newSwapper(options);
|
|
132
153
|
await swapper.init();
|
|
@@ -9,43 +9,51 @@ import { SCToken } from "../types/Token";
|
|
|
9
9
|
import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
|
|
10
10
|
import { LNURLPay } from "../types/lnurl/LNURLPay";
|
|
11
11
|
/**
|
|
12
|
-
* Utility class providing helper methods for
|
|
12
|
+
* Utility class providing helper methods for address parsing, token balances, serialization
|
|
13
|
+
* and other miscellaneous things.
|
|
14
|
+
*
|
|
13
15
|
* @category Core
|
|
14
16
|
*/
|
|
15
17
|
export declare class SwapperUtils<T extends MultiChain> {
|
|
16
18
|
readonly bitcoinNetwork: BTC_NETWORK;
|
|
17
19
|
private readonly root;
|
|
18
20
|
constructor(root: Swapper<T>);
|
|
21
|
+
/**
|
|
22
|
+
* Checks whether a passed address is a valid address on the smart chain
|
|
23
|
+
*
|
|
24
|
+
* @param address Address
|
|
25
|
+
* @param chainId Smart chain identifier string to check the address for
|
|
26
|
+
*/
|
|
19
27
|
isValidSmartChainAddress(address: string, chainId?: ChainIds<T>): boolean;
|
|
20
28
|
/**
|
|
21
|
-
*
|
|
29
|
+
* Checks whether an address is a valid BOLT11 bitcoin lightning invoice
|
|
22
30
|
*
|
|
23
|
-
* @param
|
|
31
|
+
* @param address Address to check
|
|
24
32
|
*/
|
|
25
|
-
isLightningInvoice(
|
|
33
|
+
isLightningInvoice(address: string): boolean;
|
|
26
34
|
/**
|
|
27
|
-
*
|
|
35
|
+
* Checks whether an address is a valid bitcoin address
|
|
28
36
|
*
|
|
29
|
-
* @param
|
|
37
|
+
* @param address Address to check
|
|
30
38
|
*/
|
|
31
|
-
isValidBitcoinAddress(
|
|
39
|
+
isValidBitcoinAddress(address: string): boolean;
|
|
32
40
|
/**
|
|
33
|
-
*
|
|
41
|
+
* Checks whether an address is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT
|
|
34
42
|
*
|
|
35
|
-
* @param
|
|
43
|
+
* @param address Address to check
|
|
36
44
|
*/
|
|
37
|
-
isValidLightningInvoice(
|
|
45
|
+
isValidLightningInvoice(address: string): boolean;
|
|
38
46
|
/**
|
|
39
|
-
*
|
|
47
|
+
* Checks whether an address is a valid LNURL (no checking on type is performed)
|
|
40
48
|
*
|
|
41
|
-
* @param
|
|
49
|
+
* @param address Address to check
|
|
42
50
|
*/
|
|
43
|
-
isValidLNURL(
|
|
51
|
+
isValidLNURL(address: string): boolean;
|
|
44
52
|
/**
|
|
45
53
|
* Returns type and data about an LNURL
|
|
46
54
|
*
|
|
47
|
-
* @param lnurl
|
|
48
|
-
* @param shouldRetry
|
|
55
|
+
* @param lnurl LNURL link to check, can be either `pay` or `withdraw` type
|
|
56
|
+
* @param shouldRetry Optional whether HTTP requests should retried on failure
|
|
49
57
|
*/
|
|
50
58
|
getLNURLTypeAndData(lnurl: string, shouldRetry?: boolean): Promise<LNURLPay | LNURLWithdraw | null>;
|
|
51
59
|
/**
|
|
@@ -60,12 +68,12 @@ export declare class SwapperUtils<T extends MultiChain> {
|
|
|
60
68
|
private parseLightningInvoice;
|
|
61
69
|
private parseSmartchainAddress;
|
|
62
70
|
/**
|
|
63
|
-
* General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses
|
|
64
|
-
* (hence returns Promise)
|
|
71
|
+
* General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses. Also fetches LNURL data
|
|
72
|
+
* (hence async and returns Promise).
|
|
65
73
|
*
|
|
66
74
|
* @param addressString Address to parse
|
|
67
75
|
* @throws {Error} Error in address parsing
|
|
68
|
-
* @returns Address data or null if address doesn't conform to any known format
|
|
76
|
+
* @returns Address data or `null` if address doesn't conform to any known format
|
|
69
77
|
*/
|
|
70
78
|
parseAddress(addressString: string): Promise<{
|
|
71
79
|
address: string;
|
|
@@ -78,11 +86,11 @@ export declare class SwapperUtils<T extends MultiChain> {
|
|
|
78
86
|
} | null>;
|
|
79
87
|
/**
|
|
80
88
|
* Synchronous general parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, doesn't fetch
|
|
81
|
-
* LNURL data,
|
|
89
|
+
* LNURL data, returns `swapType: null` instead to prevent returning a Promise
|
|
82
90
|
*
|
|
83
91
|
* @param addressString Address to parse
|
|
84
92
|
* @throws {Error} Error in address parsing
|
|
85
|
-
* @returns Address data or null if address doesn't conform to any known format
|
|
93
|
+
* @returns Address data or `null` if address doesn't conform to any known format
|
|
86
94
|
*/
|
|
87
95
|
parseAddressSync(addressString: string): {
|
|
88
96
|
address: string;
|
|
@@ -93,18 +101,21 @@ export declare class SwapperUtils<T extends MultiChain> {
|
|
|
93
101
|
amount?: TokenAmount;
|
|
94
102
|
} | null;
|
|
95
103
|
/**
|
|
96
|
-
* Returns a random PSBT that can be used for fee estimation
|
|
97
|
-
*
|
|
104
|
+
* Returns a random PSBT that can be used for fee estimation for SPV vault (UTXO-controlled vault) based swaps
|
|
105
|
+
* {@link SwapType.SPV_VAULT_FROM_BTC}, the last output (the LP output) is omitted to allow for coinselection
|
|
106
|
+
* algorithm to determine maximum sendable amount there
|
|
98
107
|
*
|
|
99
|
-
* @param chainIdentifier
|
|
100
|
-
* @param includeGasToken
|
|
108
|
+
* @param chainIdentifier Smart chain to swap to
|
|
109
|
+
* @param includeGasToken Whether to return the PSBT also with the gas token amount (increases the vSize by 8)
|
|
101
110
|
*/
|
|
102
111
|
getRandomSpvVaultPsbt<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, includeGasToken?: boolean): Transaction;
|
|
103
112
|
/**
|
|
104
113
|
* Returns the spendable balance of a bitcoin wallet
|
|
105
114
|
*
|
|
106
|
-
* @param wallet
|
|
107
|
-
*
|
|
115
|
+
* @param wallet Bitcoin wallet to check the spendable balance for, can either be a simple
|
|
116
|
+
* bitcoin address string or a wallet object
|
|
117
|
+
* @param targetChain Destination smart chain for the swap, the ensures proper spendable balance
|
|
118
|
+
* is estimated taking into consideration different swap primitives available on different chains
|
|
108
119
|
* @param options Additional options
|
|
109
120
|
*/
|
|
110
121
|
getBitcoinSpendableBalance(wallet: string | IBitcoinWallet | MinimalBitcoinWalletInterface, targetChain?: ChainIds<T>, options?: {
|
|
@@ -116,14 +127,15 @@ export declare class SwapperUtils<T extends MultiChain> {
|
|
|
116
127
|
feeRate: number;
|
|
117
128
|
}>;
|
|
118
129
|
/**
|
|
119
|
-
* Returns the maximum spendable balance of the wallet, deducting the fee needed
|
|
130
|
+
* Returns the maximum spendable balance of the smart chain wallet, deducting the fee needed
|
|
131
|
+
* to initiate a swap for native balances
|
|
120
132
|
*/
|
|
121
133
|
getSpendableBalance<ChainIdentifier extends ChainIds<T>>(wallet: string | T[ChainIdentifier]["Signer"] | T[ChainIdentifier]["NativeSigner"], token: SCToken<ChainIdentifier>, options?: {
|
|
122
134
|
feeMultiplier?: number;
|
|
123
135
|
feeRate?: any;
|
|
124
136
|
}): Promise<TokenAmount>;
|
|
125
137
|
/**
|
|
126
|
-
* Returns the address of the native currency of the chain
|
|
138
|
+
* Returns the address of the native currency of the smart chain
|
|
127
139
|
*/
|
|
128
140
|
getNativeToken<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SCToken<ChainIdentifier>;
|
|
129
141
|
/**
|
|
@@ -140,14 +152,49 @@ export declare class SwapperUtils<T extends MultiChain> {
|
|
|
140
152
|
randomAddress<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): string;
|
|
141
153
|
/**
|
|
142
154
|
* Signs and broadcasts the supplied smart chain transaction
|
|
155
|
+
*
|
|
156
|
+
* @param chainIdentifier Smart chain identifier string
|
|
157
|
+
* @param signer Signer to use for signing the transactions
|
|
158
|
+
* @param txs An array of transactions to sign
|
|
159
|
+
* @param abortSignal Abort signal
|
|
160
|
+
* @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
|
|
143
161
|
*/
|
|
144
162
|
sendAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: T[ChainIdentifier]["NativeSigner"] | T[ChainIdentifier]["Signer"], txs: T[ChainIdentifier]["TX"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
145
163
|
/**
|
|
146
164
|
* Broadcasts already signed smart chain transactions
|
|
165
|
+
*
|
|
166
|
+
* @param chainIdentifier Smart chain identifier string
|
|
167
|
+
* @param txs An array of already signed transactions
|
|
168
|
+
* @param abortSignal Abort signal
|
|
169
|
+
* @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
|
|
147
170
|
*/
|
|
148
171
|
sendSignedAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, txs: T[ChainIdentifier]["SignedTXType"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
172
|
+
/**
|
|
173
|
+
* Serializes an unsigned smart chain transaction
|
|
174
|
+
*
|
|
175
|
+
* @param chainIdentifier Smart chain string identifier
|
|
176
|
+
* @param tx An unsigned transaction to serialize
|
|
177
|
+
*/
|
|
149
178
|
serializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["TX"]): Promise<string>;
|
|
179
|
+
/**
|
|
180
|
+
* Deserializes an unsigned smart chain transaction
|
|
181
|
+
*
|
|
182
|
+
* @param chainIdentifier Smart chain string identifier
|
|
183
|
+
* @param tx Serialized unsigned transaction
|
|
184
|
+
*/
|
|
150
185
|
deserializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["TX"]>;
|
|
186
|
+
/**
|
|
187
|
+
* Serializes a signed smart chain transaction
|
|
188
|
+
*
|
|
189
|
+
* @param chainIdentifier Smart chain string identifier
|
|
190
|
+
* @param tx A signed transaction to serialize
|
|
191
|
+
*/
|
|
151
192
|
serializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["SignedTXType"]): Promise<string>;
|
|
193
|
+
/**
|
|
194
|
+
* Deserializes a signed smart chain transaction
|
|
195
|
+
*
|
|
196
|
+
* @param chainIdentifier Smart chain string identifier
|
|
197
|
+
* @param tx Serialized signed transaction
|
|
198
|
+
*/
|
|
152
199
|
deserializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["SignedTXType"]>;
|
|
153
200
|
}
|