@atomiqlabs/sdk 8.1.7 → 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.
Files changed (253) hide show
  1. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
  2. package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
  3. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
  4. package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
  5. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
  6. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
  7. package/dist/enums/FeeType.d.ts +7 -0
  8. package/dist/enums/FeeType.js +7 -0
  9. package/dist/enums/SwapAmountType.d.ts +7 -0
  10. package/dist/enums/SwapAmountType.js +7 -0
  11. package/dist/enums/SwapDirection.d.ts +7 -0
  12. package/dist/enums/SwapDirection.js +7 -0
  13. package/dist/enums/SwapType.d.ts +62 -1
  14. package/dist/enums/SwapType.js +62 -1
  15. package/dist/errors/IntermediaryError.d.ts +4 -0
  16. package/dist/errors/IntermediaryError.js +1 -0
  17. package/dist/errors/RequestError.d.ts +15 -1
  18. package/dist/errors/RequestError.js +8 -0
  19. package/dist/errors/UserError.d.ts +1 -0
  20. package/dist/errors/UserError.js +1 -0
  21. package/dist/index.d.ts +4 -5
  22. package/dist/index.js +3 -4
  23. package/dist/intermediaries/Intermediary.d.ts +57 -10
  24. package/dist/intermediaries/Intermediary.js +37 -10
  25. package/dist/intermediaries/IntermediaryDiscovery.d.ts +55 -22
  26. package/dist/intermediaries/IntermediaryDiscovery.js +35 -22
  27. package/dist/prices/RedundantSwapPrice.d.ts +24 -3
  28. package/dist/prices/RedundantSwapPrice.js +21 -1
  29. package/dist/prices/SingleSwapPrice.d.ts +9 -6
  30. package/dist/prices/SingleSwapPrice.js +10 -7
  31. package/dist/prices/SwapPriceWithChain.d.ts +54 -16
  32. package/dist/prices/SwapPriceWithChain.js +58 -20
  33. package/dist/prices/abstract/ISwapPrice.d.ts +94 -45
  34. package/dist/prices/abstract/ISwapPrice.js +103 -55
  35. package/dist/prices/providers/BinancePriceProvider.d.ts +7 -0
  36. package/dist/prices/providers/BinancePriceProvider.js +7 -0
  37. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +6 -0
  38. package/dist/prices/providers/CoinGeckoPriceProvider.js +6 -0
  39. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +6 -0
  40. package/dist/prices/providers/CoinPaprikaPriceProvider.js +6 -0
  41. package/dist/prices/providers/CustomPriceProvider.d.ts +11 -0
  42. package/dist/prices/providers/CustomPriceProvider.js +11 -0
  43. package/dist/prices/providers/KrakenPriceProvider.d.ts +9 -0
  44. package/dist/prices/providers/KrakenPriceProvider.js +9 -0
  45. package/dist/prices/providers/OKXPriceProvider.d.ts +6 -0
  46. package/dist/prices/providers/OKXPriceProvider.js +6 -0
  47. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
  48. package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
  49. package/dist/storage/IUnifiedStorage.d.ts +19 -7
  50. package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
  51. package/dist/storage/UnifiedSwapStorage.js +29 -1
  52. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
  53. package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
  54. package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
  55. package/dist/storage-browser/LocalStorageManager.js +25 -1
  56. package/dist/swapper/Swapper.d.ts +303 -222
  57. package/dist/swapper/Swapper.js +376 -344
  58. package/dist/swapper/SwapperFactory.d.ts +41 -17
  59. package/dist/swapper/SwapperFactory.js +23 -2
  60. package/dist/swapper/SwapperUtils.d.ts +75 -28
  61. package/dist/swapper/SwapperUtils.js +107 -60
  62. package/dist/swapper/SwapperWithChain.d.ts +286 -91
  63. package/dist/swapper/SwapperWithChain.js +218 -64
  64. package/dist/swapper/SwapperWithSigner.d.ts +229 -80
  65. package/dist/swapper/SwapperWithSigner.js +190 -44
  66. package/dist/swaps/IAddressSwap.d.ts +10 -1
  67. package/dist/swaps/IAddressSwap.js +2 -1
  68. package/dist/swaps/IBTCWalletSwap.d.ts +24 -6
  69. package/dist/swaps/IBTCWalletSwap.js +2 -1
  70. package/dist/swaps/IClaimableSwap.d.ts +36 -4
  71. package/dist/swaps/IClaimableSwap.js +2 -1
  72. package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
  73. package/dist/swaps/IRefundableSwap.d.ts +29 -3
  74. package/dist/swaps/IRefundableSwap.js +2 -1
  75. package/dist/swaps/ISwap.d.ts +159 -21
  76. package/dist/swaps/ISwap.js +90 -33
  77. package/dist/swaps/ISwapWithGasDrop.d.ts +6 -0
  78. package/dist/swaps/ISwapWithGasDrop.js +1 -0
  79. package/dist/swaps/ISwapWrapper.d.ts +157 -48
  80. package/dist/swaps/ISwapWrapper.js +130 -72
  81. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +49 -6
  82. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
  83. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
  84. package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
  85. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
  86. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
  87. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
  88. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
  89. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +94 -29
  90. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +90 -27
  91. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
  92. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
  93. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +275 -58
  94. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +516 -239
  95. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +76 -25
  96. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +131 -49
  97. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +311 -51
  98. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +542 -193
  99. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
  100. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
  101. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +209 -53
  102. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +449 -242
  103. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
  104. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
  105. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +197 -56
  106. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +326 -189
  107. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
  108. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
  109. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +60 -19
  110. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +74 -31
  111. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
  112. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
  113. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +36 -13
  114. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +65 -19
  115. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
  116. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
  117. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +328 -92
  118. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +460 -219
  119. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
  120. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +244 -124
  121. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +146 -18
  122. package/dist/swaps/trusted/ln/LnForGasSwap.js +173 -43
  123. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
  124. package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
  125. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +200 -47
  126. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +230 -78
  127. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
  128. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
  129. package/dist/types/AmountData.d.ts +2 -1
  130. package/dist/types/CustomPriceFunction.d.ts +7 -1
  131. package/dist/types/SwapExecutionAction.d.ts +74 -4
  132. package/dist/types/SwapWithSigner.d.ts +4 -1
  133. package/dist/types/SwapWithSigner.js +5 -2
  134. package/dist/types/Token.d.ts +11 -5
  135. package/dist/types/Token.js +6 -3
  136. package/dist/types/TokenAmount.d.ts +3 -0
  137. package/dist/types/TokenAmount.js +2 -0
  138. package/dist/types/fees/Fee.d.ts +2 -1
  139. package/dist/types/fees/FeeBreakdown.d.ts +2 -1
  140. package/dist/types/fees/PercentagePPM.d.ts +2 -0
  141. package/dist/types/fees/PercentagePPM.js +1 -0
  142. package/dist/types/lnurl/LNURLPay.d.ts +14 -6
  143. package/dist/types/lnurl/LNURLPay.js +6 -2
  144. package/dist/types/lnurl/LNURLWithdraw.d.ts +12 -5
  145. package/dist/types/lnurl/LNURLWithdraw.js +6 -2
  146. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +20 -0
  147. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
  148. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
  149. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +3 -1
  150. package/dist/utils/BitcoinUtils.d.ts +1 -0
  151. package/dist/utils/BitcoinUtils.js +5 -1
  152. package/dist/utils/SwapUtils.d.ts +56 -1
  153. package/dist/utils/SwapUtils.js +53 -1
  154. package/dist/utils/TokenUtils.d.ts +10 -2
  155. package/dist/utils/TokenUtils.js +12 -4
  156. package/package.json +3 -3
  157. package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
  158. package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
  159. package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
  160. package/src/enums/FeeType.ts +7 -0
  161. package/src/enums/SwapAmountType.ts +7 -0
  162. package/src/enums/SwapDirection.ts +7 -0
  163. package/src/enums/SwapType.ts +62 -2
  164. package/src/errors/IntermediaryError.ts +4 -0
  165. package/src/errors/RequestError.ts +15 -1
  166. package/src/errors/UserError.ts +1 -0
  167. package/src/index.ts +6 -5
  168. package/src/intermediaries/Intermediary.ts +57 -10
  169. package/src/intermediaries/IntermediaryDiscovery.ts +60 -27
  170. package/src/prices/RedundantSwapPrice.ts +24 -4
  171. package/src/prices/SingleSwapPrice.ts +10 -7
  172. package/src/prices/SwapPriceWithChain.ts +59 -21
  173. package/src/prices/abstract/ISwapPrice.ts +114 -65
  174. package/src/prices/providers/BinancePriceProvider.ts +7 -0
  175. package/src/prices/providers/CoinGeckoPriceProvider.ts +6 -0
  176. package/src/prices/providers/CoinPaprikaPriceProvider.ts +6 -0
  177. package/src/prices/providers/CustomPriceProvider.ts +11 -0
  178. package/src/prices/providers/KrakenPriceProvider.ts +9 -0
  179. package/src/prices/providers/OKXPriceProvider.ts +6 -0
  180. package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
  181. package/src/storage/IUnifiedStorage.ts +19 -7
  182. package/src/storage/UnifiedSwapStorage.ts +33 -3
  183. package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
  184. package/src/storage-browser/LocalStorageManager.ts +25 -1
  185. package/src/swapper/Swapper.ts +513 -379
  186. package/src/swapper/SwapperFactory.ts +44 -21
  187. package/src/swapper/SwapperUtils.ts +107 -60
  188. package/src/swapper/SwapperWithChain.ts +320 -81
  189. package/src/swapper/SwapperWithSigner.ts +263 -56
  190. package/src/swaps/IAddressSwap.ts +11 -1
  191. package/src/swaps/IBTCWalletSwap.ts +24 -8
  192. package/src/swaps/IClaimableSwap.ts +39 -4
  193. package/src/swaps/IClaimableSwapWrapper.ts +11 -2
  194. package/src/swaps/IRefundableSwap.ts +32 -3
  195. package/src/swaps/ISwap.ts +221 -82
  196. package/src/swaps/ISwapWithGasDrop.ts +6 -0
  197. package/src/swaps/ISwapWrapper.ts +212 -94
  198. package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +62 -18
  199. package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
  200. package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
  201. package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
  202. package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +120 -51
  203. package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
  204. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +559 -256
  205. package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +155 -61
  206. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +590 -226
  207. package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
  208. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +470 -243
  209. package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
  210. package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +352 -193
  211. package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
  212. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +86 -39
  213. package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
  214. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +88 -33
  215. package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
  216. package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +534 -263
  217. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +289 -148
  218. package/src/swaps/trusted/ln/LnForGasSwap.ts +184 -45
  219. package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
  220. package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +260 -86
  221. package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
  222. package/src/types/AmountData.ts +2 -1
  223. package/src/types/CustomPriceFunction.ts +7 -1
  224. package/src/types/SwapExecutionAction.ts +84 -5
  225. package/src/types/SwapWithSigner.ts +7 -3
  226. package/src/types/Token.ts +12 -5
  227. package/src/types/TokenAmount.ts +3 -0
  228. package/src/types/fees/Fee.ts +2 -1
  229. package/src/types/fees/FeeBreakdown.ts +2 -1
  230. package/src/types/fees/PercentagePPM.ts +2 -0
  231. package/src/types/lnurl/LNURLPay.ts +14 -6
  232. package/src/types/lnurl/LNURLWithdraw.ts +12 -5
  233. package/src/types/wallets/LightningInvoiceCreateService.ts +26 -0
  234. package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
  235. package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +3 -1
  236. package/src/utils/BitcoinUtils.ts +5 -0
  237. package/src/utils/SwapUtils.ts +61 -1
  238. package/src/utils/TokenUtils.ts +12 -4
  239. package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
  240. package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
  241. package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
  242. package/dist/bitcoin/LightningNetworkApi.js +0 -2
  243. package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
  244. package/dist/bitcoin/mempool/MempoolApi.js +0 -311
  245. package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
  246. package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
  247. package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
  248. package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
  249. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
  250. package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
  251. package/dist/errors/PaymentAuthError.d.ts +0 -11
  252. package/dist/errors/PaymentAuthError.js +0 -23
  253. package/src/errors/PaymentAuthError.ts +0 -26
@@ -14,10 +14,34 @@ export type OnchainForGasWrapperOptions = ISwapWrapperOptions & {
14
14
  bitcoinNetwork: BTC_NETWORK;
15
15
  };
16
16
  export type OnchainForGasSwapTypeDefinition<T extends ChainType> = SwapTypeDefinition<T, OnchainForGasWrapper<T>, OnchainForGasSwap<T>>;
17
+ /**
18
+ * Trusted swap for Bitcoin -> Smart chains, to be used for minor amounts to get gas tokens on the
19
+ * destination chain, which is only needed for Solana, which still uses legacy swaps
20
+ *
21
+ * @category Swaps
22
+ */
17
23
  export declare class OnchainForGasWrapper<T extends ChainType> extends ISwapWrapper<T, OnchainForGasSwapTypeDefinition<T>, OnchainForGasWrapperOptions> {
18
- readonly TYPE = SwapType.TRUSTED_FROM_BTC;
19
- readonly swapDeserializer: typeof OnchainForGasSwap;
20
- readonly btcRpc: BitcoinRpcWithAddressIndex<any>;
24
+ readonly TYPE: SwapType.TRUSTED_FROM_BTC;
25
+ /**
26
+ * @internal
27
+ */
28
+ readonly _swapDeserializer: typeof OnchainForGasSwap;
29
+ /**
30
+ * @internal
31
+ */
32
+ readonly _pendingSwapStates: OnchainForGasSwapState[];
33
+ /**
34
+ * @internal
35
+ */
36
+ protected readonly tickSwapState: undefined;
37
+ /**
38
+ * @internal
39
+ */
40
+ protected processEvent: undefined;
41
+ /**
42
+ * @internal
43
+ */
44
+ readonly _btcRpc: BitcoinRpcWithAddressIndex<any>;
21
45
  /**
22
46
  * @param chainIdentifier
23
47
  * @param unifiedStorage Storage interface for the current environment
@@ -33,15 +57,13 @@ export declare class OnchainForGasWrapper<T extends ChainType> extends ISwapWrap
33
57
  swapState: [ISwap];
34
58
  }>);
35
59
  /**
36
- * Returns a newly created swap, receiving 'amount' base units of gas token
60
+ * Returns a newly created trusted Bitcoin on-chain -> Smart chain swap, receiving
61
+ * the specified amount of native token on the destination chain.
37
62
  *
38
- * @param signer
39
- * @param amount Amount you wish to receive in base units
40
- * @param lpOrUrl Intermediary/Counterparty swap service Intermediary object or raw url
41
- * @param refundAddress Bitcoin address to receive refund on in case the counterparty cannot execute the swap
63
+ * @param recipient Address of the recipient on the smart chain destination chain
64
+ * @param amount Amount of native token to receive in base units
65
+ * @param lpOrUrl Intermediary (LP) to use for the swap
66
+ * @param refundAddress Bitcoin address to receive refund on in case the intermediary (LP) cannot execute the swap
42
67
  */
43
- create(signer: string, amount: bigint, lpOrUrl: Intermediary | string, refundAddress?: string): Promise<OnchainForGasSwap<T>>;
44
- readonly pendingSwapStates: OnchainForGasSwapState[];
45
- readonly tickSwapState: undefined;
46
- protected processEvent: undefined;
68
+ create(recipient: string, amount: bigint, lpOrUrl: Intermediary | string, refundAddress?: string): Promise<OnchainForGasSwap<T>>;
47
69
  }
@@ -6,6 +6,12 @@ const TrustedIntermediaryAPI_1 = require("../../../intermediaries/apis/TrustedIn
6
6
  const IntermediaryError_1 = require("../../../errors/IntermediaryError");
7
7
  const OnchainForGasSwap_1 = require("./OnchainForGasSwap");
8
8
  const SwapType_1 = require("../../../enums/SwapType");
9
+ /**
10
+ * Trusted swap for Bitcoin -> Smart chains, to be used for minor amounts to get gas tokens on the
11
+ * destination chain, which is only needed for Solana, which still uses legacy swaps
12
+ *
13
+ * @category Swaps
14
+ */
9
15
  class OnchainForGasWrapper extends ISwapWrapper_1.ISwapWrapper {
10
16
  /**
11
17
  * @param chainIdentifier
@@ -21,43 +27,56 @@ class OnchainForGasWrapper extends ISwapWrapper_1.ISwapWrapper {
21
27
  constructor(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, prices, tokens, btcRpc, options, events) {
22
28
  super(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, prices, tokens, options, events);
23
29
  this.TYPE = SwapType_1.SwapType.TRUSTED_FROM_BTC;
24
- this.swapDeserializer = OnchainForGasSwap_1.OnchainForGasSwap;
25
- this.pendingSwapStates = [OnchainForGasSwap_1.OnchainForGasSwapState.PR_CREATED];
30
+ /**
31
+ * @internal
32
+ */
33
+ this._swapDeserializer = OnchainForGasSwap_1.OnchainForGasSwap;
34
+ /**
35
+ * @internal
36
+ */
37
+ this._pendingSwapStates = [OnchainForGasSwap_1.OnchainForGasSwapState.PR_CREATED];
38
+ /**
39
+ * @internal
40
+ */
26
41
  this.tickSwapState = undefined;
42
+ /**
43
+ * @internal
44
+ */
27
45
  this.processEvent = undefined;
28
- this.btcRpc = btcRpc;
46
+ this._btcRpc = btcRpc;
29
47
  }
30
48
  /**
31
- * Returns a newly created swap, receiving 'amount' base units of gas token
49
+ * Returns a newly created trusted Bitcoin on-chain -> Smart chain swap, receiving
50
+ * the specified amount of native token on the destination chain.
32
51
  *
33
- * @param signer
34
- * @param amount Amount you wish to receive in base units
35
- * @param lpOrUrl Intermediary/Counterparty swap service Intermediary object or raw url
36
- * @param refundAddress Bitcoin address to receive refund on in case the counterparty cannot execute the swap
52
+ * @param recipient Address of the recipient on the smart chain destination chain
53
+ * @param amount Amount of native token to receive in base units
54
+ * @param lpOrUrl Intermediary (LP) to use for the swap
55
+ * @param refundAddress Bitcoin address to receive refund on in case the intermediary (LP) cannot execute the swap
37
56
  */
38
- async create(signer, amount, lpOrUrl, refundAddress) {
57
+ async create(recipient, amount, lpOrUrl, refundAddress) {
39
58
  if (!this.isInitialized)
40
59
  throw new Error("Not initialized, call init() first!");
41
60
  const lpUrl = typeof (lpOrUrl) === "string" ? lpOrUrl : lpOrUrl.url;
42
- const token = this.chain.getNativeCurrencyAddress();
61
+ const token = this._chain.getNativeCurrencyAddress();
43
62
  const resp = await TrustedIntermediaryAPI_1.TrustedIntermediaryAPI.initTrustedFromBTC(this.chainIdentifier, lpUrl, {
44
- address: signer,
63
+ address: recipient,
45
64
  amount,
46
65
  refundAddress,
47
66
  token
48
- }, this.options.getRequestTimeout);
67
+ }, this._options.getRequestTimeout);
49
68
  if (resp.total !== amount)
50
69
  throw new IntermediaryError_1.IntermediaryError("Invalid total returned");
51
70
  const pricingInfo = await this.verifyReturnedPrice(typeof (lpOrUrl) === "string" || lpOrUrl.services[SwapType_1.SwapType.TRUSTED_FROM_BTC] == null ?
52
71
  { swapFeePPM: 10000, swapBaseFee: 10 } :
53
- lpOrUrl.services[SwapType_1.SwapType.TRUSTED_FROM_BTC], false, resp.amountSats, amount, this.chain.getNativeCurrencyAddress(), {});
72
+ lpOrUrl.services[SwapType_1.SwapType.TRUSTED_FROM_BTC], false, resp.amountSats, amount, this._chain.getNativeCurrencyAddress(), {});
54
73
  const quote = new OnchainForGasSwap_1.OnchainForGasSwap(this, {
55
74
  paymentHash: resp.paymentHash,
56
75
  sequence: resp.sequence,
57
76
  address: resp.btcAddress,
58
77
  inputAmount: resp.amountSats,
59
78
  outputAmount: resp.total,
60
- recipient: signer,
79
+ recipient,
61
80
  refundAddress,
62
81
  pricingInfo,
63
82
  url: lpUrl,
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Simple amount definition for swap operations
2
+ * Amount, token and exact input object for initiating swap operations
3
+ *
3
4
  * @category Tokens
4
5
  */
5
6
  export type AmountData = {
@@ -1,5 +1,11 @@
1
1
  /**
2
- * Custom pricing callback function type
2
+ * Custom pricing callback function type, fetches the USD price for the provided array
3
+ * of token tickers.
4
+ *
5
+ * @param tickers Tickers of the tokens to fetch USD price for
6
+ * @param abortSignal Abort signal
7
+ * @returns USD prices of the passed tickers in the order that they were passed
8
+ *
3
9
  * @category Pricing and LPs
4
10
  */
5
11
  export type CustomPriceFunction = (tickers: string[], abortSignal?: AbortSignal) => Promise<number[]>;
@@ -1,7 +1,77 @@
1
1
  import { ChainType } from "@atomiqlabs/base";
2
- export type SwapExecutionAction<T extends ChainType> = {
3
- name: "Payment" | "Commit" | "Claim";
2
+ import { Transaction } from "@scure/btc-signer";
3
+ /**
4
+ * Swap execution action requiring a payment of the provided bolt11 lightning network invoice
5
+ *
6
+ * @category Swaps
7
+ */
8
+ export type SwapExecutionActionLightning = {
9
+ name: "Payment";
4
10
  description: string;
5
- chain: "LIGHTNING" | "BITCOIN" | T["ChainId"];
6
- txs: any[];
11
+ chain: "LIGHTNING";
12
+ txs: {
13
+ type: "BOLT11_PAYMENT_REQUEST";
14
+ address: string;
15
+ hyperlink: string;
16
+ }[];
7
17
  };
18
+ /**
19
+ * Swap execution action on on-chain Bitcoin, has following types:
20
+ * - `"ADDRESS"` - Destination bitcoin address and BTC amount to be sent
21
+ * - `"FUNDED_PSBT"` - A ready to sign PSBT with the inputs populated from the provided bitcoin wallet address
22
+ * - `"RAW_PSBT"` - Raw PSBT without the inputs, the implementor needs to add the input UTXOs before signing
23
+ * the transaction
24
+ *
25
+ * @category Swaps
26
+ */
27
+ export type SwapExecutionActionBitcoin<T extends "ADDRESS" | "FUNDED_PSBT" | "RAW_PSBT" = "ADDRESS" | "FUNDED_PSBT" | "RAW_PSBT"> = {
28
+ name: "Payment";
29
+ description: string;
30
+ chain: "BITCOIN";
31
+ txs: (T extends "ADDRESS" ? {
32
+ type: "ADDRESS";
33
+ amount: number;
34
+ address: string;
35
+ hyperlink: string;
36
+ } : T extends "FUNDED_PSBT" ? {
37
+ type: "FUNDED_PSBT";
38
+ psbt: Transaction;
39
+ psbtHex: string;
40
+ psbtBase64: string;
41
+ signInputs: number[];
42
+ } : {
43
+ type: "RAW_PSBT";
44
+ psbt: Transaction;
45
+ psbtHex: string;
46
+ psbtBase64: string;
47
+ in1sequence: number;
48
+ })[];
49
+ };
50
+ /**
51
+ * Swap execution action for committing (initiating) the escrow on the smart chain side
52
+ *
53
+ * @category Swaps
54
+ */
55
+ export type SwapExecutionActionCommit<T extends ChainType> = {
56
+ name: "Commit";
57
+ description: string;
58
+ chain: T["ChainId"];
59
+ txs: T["TX"][];
60
+ };
61
+ /**
62
+ * Swap execution action for claiming (settling) the swap on the smart chain side
63
+ *
64
+ * @category Swaps
65
+ */
66
+ export type SwapExecutionActionClaim<T extends ChainType> = {
67
+ name: "Claim";
68
+ description: string;
69
+ chain: T["ChainId"];
70
+ txs: T["TX"][];
71
+ };
72
+ /**
73
+ * Swap execution action, a single step in the swapping process
74
+ *
75
+ * @category Swaps
76
+ */
77
+ export type SwapExecutionAction<T extends ChainType> = SwapExecutionActionLightning | SwapExecutionActionBitcoin | SwapExecutionActionCommit<T> | SwapExecutionActionClaim<T>;
@@ -1,7 +1,8 @@
1
1
  import { ISwap } from "../swaps/ISwap";
2
2
  import { ChainType } from "@atomiqlabs/base";
3
3
  /**
4
- * Proxy type that auto-injects signer into swap methods
4
+ * Proxy type that auto-injects a smart chain signer into swap methods
5
+ *
5
6
  * @category Swaps
6
7
  */
7
8
  export type SwapWithSigner<T extends ISwap> = {
@@ -9,6 +10,8 @@ export type SwapWithSigner<T extends ISwap> = {
9
10
  };
10
11
  /**
11
12
  * Wraps a swap with automatic signer injection for methods like commit, refund, and claim
13
+ *
12
14
  * @category Swaps
15
+ * @internal
13
16
  */
14
17
  export declare function wrapSwapWithSigner<C extends ChainType, T extends ISwap<C>>(swap: T, signer: C["Signer"]): SwapWithSigner<T>;
@@ -4,14 +4,17 @@ exports.wrapSwapWithSigner = void 0;
4
4
  const IToBTCSwap_1 = require("../swaps/escrow_swaps/tobtc/IToBTCSwap");
5
5
  const IFromBTCSelfInitSwap_1 = require("../swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap");
6
6
  const FromBTCLNSwap_1 = require("../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap");
7
+ const FromBTCLNAutoSwap_1 = require("../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap");
8
+ const SpvFromBTCSwap_1 = require("../swaps/spv_swaps/SpvFromBTCSwap");
7
9
  /**
8
10
  * Wraps a swap with automatic signer injection for methods like commit, refund, and claim
11
+ *
9
12
  * @category Swaps
13
+ * @internal
10
14
  */
11
15
  function wrapSwapWithSigner(swap, signer) {
12
16
  return new Proxy(swap, {
13
17
  get: (target, prop, receiver) => {
14
- // Override the "sayGoodbye" method
15
18
  if (prop === "commit") {
16
19
  if (swap instanceof IToBTCSwap_1.IToBTCSwap || swap instanceof IFromBTCSelfInitSwap_1.IFromBTCSelfInitSwap) {
17
20
  return (abortSignal, skipChecks) => swap.commit(signer, abortSignal, skipChecks);
@@ -23,7 +26,7 @@ function wrapSwapWithSigner(swap, signer) {
23
26
  }
24
27
  }
25
28
  if (prop === "claim") {
26
- if (swap instanceof IFromBTCSelfInitSwap_1.IFromBTCSelfInitSwap) {
29
+ if (swap instanceof IFromBTCSelfInitSwap_1.IFromBTCSelfInitSwap || swap instanceof FromBTCLNAutoSwap_1.FromBTCLNAutoSwap || swap instanceof SpvFromBTCSwap_1.SpvFromBTCSwap) {
27
30
  return (abortSignal) => swap.claim(signer, abortSignal);
28
31
  }
29
32
  }
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Bitcoin token type (on-chain or lightning)
2
+ * Bitcoin token type (BTC on on-chain or lightning)
3
+ *
3
4
  * @category Tokens
4
5
  */
5
6
  export type BtcToken<L = boolean> = {
@@ -11,12 +12,14 @@ export type BtcToken<L = boolean> = {
11
12
  displayDecimals?: number;
12
13
  };
13
14
  /**
14
- * Type guard for BtcToken
15
+ * Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
16
+ *
15
17
  * @category Tokens
16
18
  */
17
19
  export declare function isBtcToken(obj: any): obj is BtcToken;
18
20
  /**
19
21
  * Predefined Bitcoin token constants
22
+ *
20
23
  * @category Tokens
21
24
  */
22
25
  export declare const BitcoinTokens: {
@@ -24,7 +27,8 @@ export declare const BitcoinTokens: {
24
27
  BTCLN: BtcToken<true>;
25
28
  };
26
29
  /**
27
- * Smart Chain token type
30
+ * Token on the smart chain
31
+ *
28
32
  * @category Tokens
29
33
  */
30
34
  export type SCToken<ChainIdentifier extends string = string> = {
@@ -37,17 +41,19 @@ export type SCToken<ChainIdentifier extends string = string> = {
37
41
  name: string;
38
42
  };
39
43
  /**
40
- * Type guard for SCToken
44
+ * Type guard for {@link SCToken} (token on the smart chain)
41
45
  * @category Tokens
42
46
  */
43
47
  export declare function isSCToken(obj: any): obj is SCToken;
44
48
  /**
45
49
  * Union type for all token types (BTC or smart chain)
50
+ *
46
51
  * @category Tokens
47
52
  */
48
53
  export type Token<ChainIdentifier extends string = string> = BtcToken | SCToken<ChainIdentifier>;
49
54
  /**
50
- * Type guard for Token
55
+ * Type guard for an union {@link Token} type, encompassing all tokens (BTC or smart chain)
56
+ *
51
57
  * @category Tokens
52
58
  */
53
59
  export declare function isToken(obj: any): obj is Token;
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isToken = exports.isSCToken = exports.BitcoinTokens = exports.isBtcToken = void 0;
4
4
  /**
5
- * Type guard for BtcToken
5
+ * Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
6
+ *
6
7
  * @category Tokens
7
8
  */
8
9
  function isBtcToken(obj) {
@@ -16,6 +17,7 @@ function isBtcToken(obj) {
16
17
  exports.isBtcToken = isBtcToken;
17
18
  /**
18
19
  * Predefined Bitcoin token constants
20
+ *
19
21
  * @category Tokens
20
22
  */
21
23
  exports.BitcoinTokens = {
@@ -35,7 +37,7 @@ exports.BitcoinTokens = {
35
37
  }
36
38
  };
37
39
  /**
38
- * Type guard for SCToken
40
+ * Type guard for {@link SCToken} (token on the smart chain)
39
41
  * @category Tokens
40
42
  */
41
43
  function isSCToken(obj) {
@@ -49,7 +51,8 @@ function isSCToken(obj) {
49
51
  }
50
52
  exports.isSCToken = isSCToken;
51
53
  /**
52
- * Type guard for Token
54
+ * Type guard for an union {@link Token} type, encompassing all tokens (BTC or smart chain)
55
+ *
53
56
  * @category Tokens
54
57
  */
55
58
  function isToken(obj) {
@@ -3,6 +3,7 @@ import { Token } from "./Token";
3
3
  import { PriceInfoType } from "./PriceInfoType";
4
4
  /**
5
5
  * Represents a token amount along with its formatted values and USD valuation helpers
6
+ *
6
7
  * @category Tokens
7
8
  */
8
9
  export type TokenAmount<ChainIdentifier extends string = string, T extends Token<ChainIdentifier> = Token<ChainIdentifier>, Known extends boolean = boolean> = {
@@ -61,6 +62,8 @@ export type TokenAmount<ChainIdentifier extends string = string, T extends Token
61
62
  };
62
63
  /**
63
64
  * Factory function to create a TokenAmount
65
+ *
64
66
  * @category Tokens
67
+ * @internal
65
68
  */
66
69
  export declare function toTokenAmount<ChainIdentifier extends string = string, T extends Token<ChainIdentifier> = Token<ChainIdentifier>, Known extends boolean = boolean>(amount: Known extends true ? bigint : null, token: T, prices: ISwapPrice, pricingInfo?: PriceInfoType): TokenAmount<ChainIdentifier, T, Known>;
@@ -4,7 +4,9 @@ exports.toTokenAmount = void 0;
4
4
  const Utils_1 = require("../utils/Utils");
5
5
  /**
6
6
  * Factory function to create a TokenAmount
7
+ *
7
8
  * @category Tokens
9
+ * @internal
8
10
  */
9
11
  function toTokenAmount(amount, token, prices, pricingInfo) {
10
12
  if (amount == null)
@@ -2,8 +2,9 @@ import { PercentagePPM } from "./PercentagePPM";
2
2
  import { TokenAmount } from "../TokenAmount";
3
3
  import { Token } from "../Token";
4
4
  /**
5
- * Represents a fee in both source and destination tokens, as well as providing USD valuation helpers and
5
+ * Fee represented in both, source and destination tokens, as well as providing USD valuation helpers and
6
6
  * fee composition
7
+ *
7
8
  * @category Pricing and LPs
8
9
  */
9
10
  export type Fee<ChainIdentifier extends string = string, TSrc extends Token<ChainIdentifier> = Token<ChainIdentifier>, TDst extends Token<ChainIdentifier> = Token<ChainIdentifier>> = {
@@ -1,7 +1,8 @@
1
1
  import { FeeType } from "../../enums/FeeType";
2
2
  import { Fee } from "./Fee";
3
3
  /**
4
- * Breakdown of fees by type (swap fee vs network fee)
4
+ * Breakdown of fees by type (swap fee, network fee, etc.)
5
+ *
5
6
  * @category Pricing and LPs
6
7
  */
7
8
  export type FeeBreakdown<ChainIdentifier extends string = string> = {
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Parts-per-million fee representation with conversion helpers
3
+ *
3
4
  * @category Pricing and LPs
4
5
  */
5
6
  export type PercentagePPM = {
@@ -10,6 +11,7 @@ export type PercentagePPM = {
10
11
  };
11
12
  /**
12
13
  * Converts parts-per-million to percentage representation
14
+ *
13
15
  * @category Pricing and LPs
14
16
  */
15
17
  export declare function ppmToPercentage(ppm: bigint): PercentagePPM;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ppmToPercentage = void 0;
4
4
  /**
5
5
  * Converts parts-per-million to percentage representation
6
+ *
6
7
  * @category Pricing and LPs
7
8
  */
8
9
  function ppmToPercentage(ppm) {
@@ -1,5 +1,6 @@
1
1
  /**
2
- * LNURL-pay request parameters
2
+ * Response of the LNURL-pay link
3
+ *
3
4
  * @category Bitcoin
4
5
  */
5
6
  export type LNURLPayParams = {
@@ -13,14 +14,16 @@ export type LNURLPayParams = {
13
14
  commentAllowed: number;
14
15
  };
15
16
  /**
16
- * LNURL-pay parameters with URL
17
+ * Response of the LNURL-pay link with the added original url
18
+ *
17
19
  * @category Bitcoin
18
20
  */
19
21
  export type LNURLPayParamsWithUrl = LNURLPayParams & {
20
22
  url: string;
21
23
  };
22
24
  /**
23
- * LNURL-pay specification
25
+ * Parsed LNURL-pay specification
26
+ *
24
27
  * @category Bitcoin
25
28
  */
26
29
  export type LNURLPay = {
@@ -34,17 +37,22 @@ export type LNURLPay = {
34
37
  params: LNURLPayParamsWithUrl;
35
38
  };
36
39
  /**
37
- * Type guard for LNURL-pay parameters
40
+ * Type guard for {@link LNURLPayParams}
41
+ *
38
42
  * @category Bitcoin
43
+ * @internal
39
44
  */
40
45
  export declare function isLNURLPayParams(obj: any): obj is LNURLPayParams;
41
46
  /**
42
- * Type guard for LNURL-pay
47
+ * Type guard for {@link LNURLPay}
48
+ *
43
49
  * @category Bitcoin
50
+ * @internal
44
51
  */
45
52
  export declare function isLNURLPay(value: any): value is LNURLPay;
46
53
  /**
47
- * Decoded LNURL-pay success action
54
+ * Decoded LNURL-pay success action, revealed after a lightning payment is finished
55
+ *
48
56
  * @category Bitcoin
49
57
  */
50
58
  export type LNURLDecodedSuccessAction = {
@@ -2,16 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isLNURLPay = exports.isLNURLPayParams = void 0;
4
4
  /**
5
- * Type guard for LNURL-pay parameters
5
+ * Type guard for {@link LNURLPayParams}
6
+ *
6
7
  * @category Bitcoin
8
+ * @internal
7
9
  */
8
10
  function isLNURLPayParams(obj) {
9
11
  return obj.tag === "payRequest";
10
12
  }
11
13
  exports.isLNURLPayParams = isLNURLPayParams;
12
14
  /**
13
- * Type guard for LNURL-pay
15
+ * Type guard for {@link LNURLPay}
16
+ *
14
17
  * @category Bitcoin
18
+ * @internal
15
19
  */
16
20
  function isLNURLPay(value) {
17
21
  return (typeof value === "object" &&
@@ -1,5 +1,6 @@
1
1
  /**
2
- * LNURL-withdraw request parameters
2
+ * Response of the LNURL-withdraw link
3
+ *
3
4
  * @category Bitcoin
4
5
  */
5
6
  export type LNURLWithdrawParams = {
@@ -14,14 +15,16 @@ export type LNURLWithdrawParams = {
14
15
  payLink?: string;
15
16
  };
16
17
  /**
17
- * LNURL-withdraw parameters with URL
18
+ * Response of the LNURL-withdraw link with the added original url
19
+ *
18
20
  * @category Bitcoin
19
21
  */
20
22
  export type LNURLWithdrawParamsWithUrl = LNURLWithdrawParams & {
21
23
  url: string;
22
24
  };
23
25
  /**
24
- * LNURL-withdraw specification
26
+ * Parsed LNURL-withdraw specification
27
+ *
25
28
  * @category Bitcoin
26
29
  */
27
30
  export type LNURLWithdraw = {
@@ -31,12 +34,16 @@ export type LNURLWithdraw = {
31
34
  params: LNURLWithdrawParamsWithUrl;
32
35
  };
33
36
  /**
34
- * Type guard for LNURL-withdraw
37
+ * Type guard for {@link LNURLWithdraw}
38
+ *
35
39
  * @category Bitcoin
40
+ * @internal
36
41
  */
37
42
  export declare function isLNURLWithdraw(value: any): value is LNURLWithdraw;
38
43
  /**
39
- * Type guard for LNURL-withdraw parameters
44
+ * Type guard for {@link LNURLWithdrawParams}
45
+ *
40
46
  * @category Bitcoin
47
+ * @internal
41
48
  */
42
49
  export declare function isLNURLWithdrawParams(obj: any): obj is LNURLWithdrawParams;
@@ -2,8 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isLNURLWithdrawParams = exports.isLNURLWithdraw = void 0;
4
4
  /**
5
- * Type guard for LNURL-withdraw
5
+ * Type guard for {@link LNURLWithdraw}
6
+ *
6
7
  * @category Bitcoin
8
+ * @internal
7
9
  */
8
10
  function isLNURLWithdraw(value) {
9
11
  return (typeof value === "object" &&
@@ -15,8 +17,10 @@ function isLNURLWithdraw(value) {
15
17
  }
16
18
  exports.isLNURLWithdraw = isLNURLWithdraw;
17
19
  /**
18
- * Type guard for LNURL-withdraw parameters
20
+ * Type guard for {@link LNURLWithdrawParams}
21
+ *
19
22
  * @category Bitcoin
23
+ * @internal
20
24
  */
21
25
  function isLNURLWithdrawParams(obj) {
22
26
  return obj.tag === "withdrawRequest";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Invoice getter callback for the {@link LightningInvoiceCreateService}
3
+ */
4
+ export type LightningWalletCallback = (valueSats: number, abortSignal?: AbortSignal) => Promise<string>;
5
+ /**
6
+ * Service that creates on-demand fixed amount bolt11 lightning network invoices, optionally
7
+ * specifying minimum and maximum swappable sats amount. This used for exact input Smart chain ->
8
+ * Lightning swaps.
9
+ */
10
+ export type LightningInvoiceCreateService = {
11
+ getInvoice: LightningWalletCallback;
12
+ minMsats?: bigint;
13
+ maxMSats?: bigint;
14
+ };
15
+ /**
16
+ * Type guard for {@link LightningInvoiceCreateService}
17
+ *
18
+ * @internal
19
+ */
20
+ export declare function isLightningInvoiceCreateService(obj: any): obj is LightningInvoiceCreateService;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLightningInvoiceCreateService = void 0;
4
+ /**
5
+ * Type guard for {@link LightningInvoiceCreateService}
6
+ *
7
+ * @internal
8
+ */
9
+ function isLightningInvoiceCreateService(obj) {
10
+ return typeof (obj) === "object" &&
11
+ typeof (obj.getInvoice) === "function" &&
12
+ (obj.minMsats == null || typeof (obj.minMsats) === "bigint") &&
13
+ (obj.maxMSats == null || typeof (obj.maxMSats) === "bigint");
14
+ }
15
+ exports.isLightningInvoiceCreateService = isLightningInvoiceCreateService;