@atomiqlabs/lp-lib 12.1.0 → 13.0.0-beta.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 (119) hide show
  1. package/dist/index.d.ts +18 -13
  2. package/dist/index.js +18 -13
  3. package/dist/plugins/IPlugin.d.ts +35 -12
  4. package/dist/plugins/PluginManager.d.ts +38 -15
  5. package/dist/plugins/PluginManager.js +33 -9
  6. package/dist/prices/BinanceSwapPrice.d.ts +1 -1
  7. package/dist/prices/BinanceSwapPrice.js +1 -1
  8. package/dist/prices/CoinGeckoSwapPrice.d.ts +1 -1
  9. package/dist/prices/CoinGeckoSwapPrice.js +1 -1
  10. package/dist/{swaps → prices}/ISwapPrice.js +4 -0
  11. package/dist/prices/OKXSwapPrice.d.ts +1 -1
  12. package/dist/prices/OKXSwapPrice.js +1 -1
  13. package/dist/swaps/SwapHandler.d.ts +20 -58
  14. package/dist/swaps/SwapHandler.js +17 -186
  15. package/dist/swaps/SwapHandlerSwap.d.ts +8 -23
  16. package/dist/swaps/SwapHandlerSwap.js +7 -39
  17. package/dist/swaps/assertions/AmountAssertions.d.ts +28 -0
  18. package/dist/swaps/assertions/AmountAssertions.js +72 -0
  19. package/dist/swaps/assertions/FromBtcAmountAssertions.d.ts +76 -0
  20. package/dist/swaps/assertions/FromBtcAmountAssertions.js +162 -0
  21. package/dist/swaps/assertions/LightningAssertions.d.ts +44 -0
  22. package/dist/swaps/assertions/LightningAssertions.js +86 -0
  23. package/dist/swaps/assertions/ToBtcAmountAssertions.d.ts +53 -0
  24. package/dist/swaps/{ToBtcBaseSwapHandler.js → assertions/ToBtcAmountAssertions.js} +20 -94
  25. package/dist/swaps/escrow/EscrowHandler.d.ts +51 -0
  26. package/dist/swaps/escrow/EscrowHandler.js +158 -0
  27. package/dist/swaps/escrow/EscrowHandlerSwap.d.ts +35 -0
  28. package/dist/swaps/escrow/EscrowHandlerSwap.js +69 -0
  29. package/dist/swaps/{FromBtcBaseSwap.d.ts → escrow/FromBtcBaseSwap.d.ts} +2 -3
  30. package/dist/swaps/{FromBtcBaseSwap.js → escrow/FromBtcBaseSwap.js} +4 -7
  31. package/dist/swaps/{FromBtcBaseSwapHandler.d.ts → escrow/FromBtcBaseSwapHandler.d.ts} +10 -49
  32. package/dist/swaps/{FromBtcBaseSwapHandler.js → escrow/FromBtcBaseSwapHandler.js} +16 -137
  33. package/dist/swaps/{ToBtcBaseSwap.d.ts → escrow/ToBtcBaseSwap.d.ts} +2 -2
  34. package/dist/swaps/{ToBtcBaseSwap.js → escrow/ToBtcBaseSwap.js} +4 -4
  35. package/dist/swaps/escrow/ToBtcBaseSwapHandler.d.ts +53 -0
  36. package/dist/swaps/escrow/ToBtcBaseSwapHandler.js +81 -0
  37. package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcAbs.d.ts +4 -4
  38. package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcAbs.js +15 -15
  39. package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcSwapAbs.js +1 -1
  40. package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnAbs.d.ts +9 -7
  41. package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnAbs.js +22 -19
  42. package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnSwapAbs.js +3 -3
  43. package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcAbs.d.ts +4 -4
  44. package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcAbs.js +14 -13
  45. package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcSwapAbs.js +3 -3
  46. package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnAbs.d.ts +6 -26
  47. package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnAbs.js +20 -57
  48. package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnSwapAbs.js +3 -3
  49. package/dist/swaps/spv_vault_swap/SpvVault.d.ts +41 -0
  50. package/dist/swaps/spv_vault_swap/SpvVault.js +111 -0
  51. package/dist/swaps/spv_vault_swap/SpvVaultSwap.d.ts +63 -0
  52. package/dist/swaps/spv_vault_swap/SpvVaultSwap.js +145 -0
  53. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.d.ts +68 -0
  54. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.js +469 -0
  55. package/dist/swaps/spv_vault_swap/SpvVaults.d.ts +57 -0
  56. package/dist/swaps/spv_vault_swap/SpvVaults.js +369 -0
  57. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrusted.d.ts +10 -13
  58. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrusted.js +25 -30
  59. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrustedSwap.d.ts +9 -4
  60. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrustedSwap.js +15 -7
  61. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrusted.d.ts +12 -14
  62. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrusted.js +33 -35
  63. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrustedSwap.d.ts +9 -4
  64. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrustedSwap.js +17 -7
  65. package/dist/utils/Utils.d.ts +13 -5
  66. package/dist/utils/Utils.js +23 -1
  67. package/dist/wallets/IBitcoinWallet.d.ts +6 -0
  68. package/dist/wallets/ISpvVaultSigner.d.ts +7 -0
  69. package/dist/wallets/ISpvVaultSigner.js +2 -0
  70. package/dist/wallets/ISpvVaultWallet.d.ts +42 -0
  71. package/dist/wallets/ISpvVaultWallet.js +2 -0
  72. package/package.json +2 -2
  73. package/src/index.ts +21 -15
  74. package/src/plugins/IPlugin.ts +27 -19
  75. package/src/plugins/PluginManager.ts +51 -26
  76. package/src/prices/BinanceSwapPrice.ts +1 -1
  77. package/src/prices/CoinGeckoSwapPrice.ts +1 -1
  78. package/src/{swaps → prices}/ISwapPrice.ts +4 -0
  79. package/src/prices/OKXSwapPrice.ts +1 -1
  80. package/src/swaps/SwapHandler.ts +22 -205
  81. package/src/swaps/SwapHandlerSwap.ts +10 -46
  82. package/src/swaps/assertions/AmountAssertions.ts +77 -0
  83. package/src/swaps/assertions/FromBtcAmountAssertions.ts +228 -0
  84. package/src/swaps/assertions/LightningAssertions.ts +103 -0
  85. package/src/swaps/{ToBtcBaseSwapHandler.ts → assertions/ToBtcAmountAssertions.ts} +27 -142
  86. package/src/swaps/escrow/EscrowHandler.ts +179 -0
  87. package/src/swaps/escrow/EscrowHandlerSwap.ts +87 -0
  88. package/src/swaps/{FromBtcBaseSwap.ts → escrow/FromBtcBaseSwap.ts} +4 -8
  89. package/src/swaps/{FromBtcBaseSwapHandler.ts → escrow/FromBtcBaseSwapHandler.ts} +30 -190
  90. package/src/swaps/{ToBtcBaseSwap.ts → escrow/ToBtcBaseSwap.ts} +4 -5
  91. package/src/swaps/escrow/ToBtcBaseSwapHandler.ts +130 -0
  92. package/src/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcAbs.ts +20 -20
  93. package/src/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcSwapAbs.ts +1 -1
  94. package/src/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnAbs.ts +29 -25
  95. package/src/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnSwapAbs.ts +2 -2
  96. package/src/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcAbs.ts +19 -18
  97. package/src/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcSwapAbs.ts +2 -2
  98. package/src/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnAbs.ts +26 -66
  99. package/src/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnSwapAbs.ts +2 -2
  100. package/src/swaps/spv_vault_swap/SpvVault.ts +143 -0
  101. package/src/swaps/spv_vault_swap/SpvVaultSwap.ts +207 -0
  102. package/src/swaps/spv_vault_swap/SpvVaultSwapHandler.ts +606 -0
  103. package/src/swaps/spv_vault_swap/SpvVaults.ts +441 -0
  104. package/src/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrusted.ts +36 -51
  105. package/src/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrustedSwap.ts +18 -8
  106. package/src/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrusted.ts +43 -52
  107. package/src/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrustedSwap.ts +20 -8
  108. package/src/utils/Utils.ts +27 -1
  109. package/src/wallets/IBitcoinWallet.ts +4 -0
  110. package/src/wallets/ISpvVaultSigner.ts +11 -0
  111. package/dist/swaps/FromBtcLnBaseSwapHandler.d.ts +0 -26
  112. package/dist/swaps/FromBtcLnBaseSwapHandler.js +0 -46
  113. package/dist/swaps/ToBtcBaseSwapHandler.d.ts +0 -95
  114. package/src/swaps/FromBtcLnBaseSwapHandler.ts +0 -63
  115. /package/dist/{swaps → prices}/ISwapPrice.d.ts +0 -0
  116. /package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcSwapAbs.d.ts +0 -0
  117. /package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnSwapAbs.d.ts +0 -0
  118. /package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcSwapAbs.d.ts +0 -0
  119. /package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnSwapAbs.d.ts +0 -0
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToBtcBaseSwapHandler = void 0;
4
+ const SchemaVerifier_1 = require("../../utils/paramcoders/SchemaVerifier");
5
+ const EscrowHandler_1 = require("./EscrowHandler");
6
+ const ToBtcAmountAssertions_1 = require("../assertions/ToBtcAmountAssertions");
7
+ class ToBtcBaseSwapHandler extends EscrowHandler_1.EscrowHandler {
8
+ constructor(storageDirectory, path, chainsData, swapPricing, config) {
9
+ super(storageDirectory, path, chainsData, swapPricing);
10
+ this.pdaExistsForToken = {};
11
+ this.AmountAssertions = new ToBtcAmountAssertions_1.ToBtcAmountAssertions(config, swapPricing);
12
+ }
13
+ async checkVaultInitialized(chainIdentifier, token) {
14
+ if (!this.pdaExistsForToken[chainIdentifier] || !this.pdaExistsForToken[chainIdentifier][token]) {
15
+ this.logger.debug("checkVaultInitialized(): checking vault exists for chain: " + chainIdentifier + " token: " + token);
16
+ const { swapContract, signer } = this.getChain(chainIdentifier);
17
+ const reputation = await swapContract.getIntermediaryReputation(signer.getAddress(), token);
18
+ this.logger.debug("checkVaultInitialized(): vault state, chain: " + chainIdentifier + " token: " + token + " exists: " + (reputation != null));
19
+ if (reputation != null) {
20
+ if (this.pdaExistsForToken[chainIdentifier] == null)
21
+ this.pdaExistsForToken[chainIdentifier] = {};
22
+ this.pdaExistsForToken[chainIdentifier][token] = true;
23
+ }
24
+ else {
25
+ throw {
26
+ code: 20201,
27
+ msg: "Token not supported!"
28
+ };
29
+ }
30
+ }
31
+ }
32
+ /**
33
+ * Starts pre-fetches for swap pricing & signature data
34
+ *
35
+ * @param chainIdentifier
36
+ * @param token
37
+ * @param responseStream
38
+ * @param abortController
39
+ */
40
+ getToBtcPrefetches(chainIdentifier, token, responseStream, abortController) {
41
+ //Fetch pricing & signature data in parallel
42
+ const pricePrefetchPromise = this.swapPricing.preFetchPrice(token, chainIdentifier).catch(e => {
43
+ this.logger.error("getToBtcPrefetches(): pricePrefetch error", e);
44
+ abortController.abort(e);
45
+ return null;
46
+ });
47
+ return {
48
+ pricePrefetchPromise,
49
+ signDataPrefetchPromise: this.getSignDataPrefetch(chainIdentifier, abortController, responseStream)
50
+ };
51
+ }
52
+ /**
53
+ * Signs the created swap
54
+ *
55
+ * @param chainIdentifier
56
+ * @param swapObject
57
+ * @param req
58
+ * @param abortSignal
59
+ * @param signDataPrefetchPromise
60
+ */
61
+ async getToBtcSignatureData(chainIdentifier, swapObject, req, abortSignal, signDataPrefetchPromise) {
62
+ const prefetchedSignData = signDataPrefetchPromise != null ? await signDataPrefetchPromise : null;
63
+ if (prefetchedSignData != null)
64
+ this.logger.debug("getToBtcSignatureData(): pre-fetched signature data: ", prefetchedSignData);
65
+ abortSignal.throwIfAborted();
66
+ const feeRateObj = await req.paramReader.getParams({
67
+ feeRate: SchemaVerifier_1.FieldTypeEnum.String
68
+ }).catch(() => null);
69
+ abortSignal.throwIfAborted();
70
+ const feeRate = feeRateObj?.feeRate != null && typeof (feeRateObj.feeRate) === "string" ? feeRateObj.feeRate : null;
71
+ this.logger.debug("getToBtcSignatureData(): using fee rate from client: ", feeRate);
72
+ const { swapContract, signer } = this.getChain(chainIdentifier);
73
+ const sigData = await swapContract.getInitSignature(signer, swapObject, this.getInitAuthorizationTimeout(chainIdentifier), prefetchedSignData, feeRate);
74
+ abortSignal.throwIfAborted();
75
+ return {
76
+ ...sigData,
77
+ feeRate
78
+ };
79
+ }
80
+ }
81
+ exports.ToBtcBaseSwapHandler = ToBtcBaseSwapHandler;
@@ -1,11 +1,11 @@
1
1
  import { Express } from "express";
2
2
  import { FromBtcSwapAbs, FromBtcSwapState } from "./FromBtcSwapAbs";
3
- import { MultichainData, SwapHandlerType } from "../SwapHandler";
4
- import { ISwapPrice } from "../ISwapPrice";
3
+ import { MultichainData, SwapHandlerType } from "../../SwapHandler";
4
+ import { ISwapPrice } from "../../../prices/ISwapPrice";
5
5
  import { ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData } from "@atomiqlabs/base";
6
- import { IIntermediaryStorage } from "../../storage/IIntermediaryStorage";
6
+ import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
7
7
  import { FromBtcBaseConfig, FromBtcBaseSwapHandler } from "../FromBtcBaseSwapHandler";
8
- import { IBitcoinWallet } from "../../wallets/IBitcoinWallet";
8
+ import { IBitcoinWallet } from "../../../wallets/IBitcoinWallet";
9
9
  export type FromBtcConfig = FromBtcBaseConfig & {
10
10
  confirmations: number;
11
11
  swapCsvDelta: number;
@@ -2,20 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcAbs = void 0;
4
4
  const FromBtcSwapAbs_1 = require("./FromBtcSwapAbs");
5
- const SwapHandler_1 = require("../SwapHandler");
5
+ const SwapHandler_1 = require("../../SwapHandler");
6
6
  const base_1 = require("@atomiqlabs/base");
7
7
  const crypto_1 = require("crypto");
8
- const Utils_1 = require("../../utils/Utils");
9
- const PluginManager_1 = require("../../plugins/PluginManager");
10
- const SchemaVerifier_1 = require("../../utils/paramcoders/SchemaVerifier");
11
- const ServerParamDecoder_1 = require("../../utils/paramcoders/server/ServerParamDecoder");
8
+ const Utils_1 = require("../../../utils/Utils");
9
+ const PluginManager_1 = require("../../../plugins/PluginManager");
10
+ const SchemaVerifier_1 = require("../../../utils/paramcoders/SchemaVerifier");
11
+ const ServerParamDecoder_1 = require("../../../utils/paramcoders/server/ServerParamDecoder");
12
12
  const FromBtcBaseSwapHandler_1 = require("../FromBtcBaseSwapHandler");
13
13
  /**
14
14
  * Swap handler handling from BTC swaps using PTLCs (proof-time locked contracts) and btc relay (on-chain bitcoin SPV)
15
15
  */
16
16
  class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
17
17
  constructor(storageDirectory, path, chains, bitcoin, swapPricing, config) {
18
- super(storageDirectory, path, chains, swapPricing);
18
+ super(storageDirectory, path, chains, swapPricing, config);
19
19
  this.type = SwapHandler_1.SwapHandlerType.FROM_BTC;
20
20
  this.swapType = base_1.ChainSwapType.CHAIN;
21
21
  this.bitcoin = bitcoin;
@@ -57,8 +57,8 @@ class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
57
57
  return false;
58
58
  }
59
59
  this.swapLogger.info(swap, "processPastSwap(state=CREATED): removing past swap due to authorization expiry, address: " + swap.address);
60
- await this.bitcoin.addUnusedAddress(swap.address);
61
60
  await this.removeSwapData(swap, FromBtcSwapAbs_1.FromBtcSwapState.CANCELED);
61
+ await this.bitcoin.addUnusedAddress(swap.address);
62
62
  return false;
63
63
  }
64
64
  //Check if commited swap expired by now
@@ -130,8 +130,8 @@ class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
130
130
  async processRefundEvent(chainIdentifier, savedSwap, event) {
131
131
  savedSwap.txIds.refund = event.meta?.txId;
132
132
  this.swapLogger.info(event, "SC: RefundEvent: swap refunded, address: " + savedSwap.address);
133
- await this.bitcoin.addUnusedAddress(savedSwap.address);
134
133
  await this.removeSwapData(savedSwap, FromBtcSwapAbs_1.FromBtcSwapState.REFUNDED);
134
+ await this.bitcoin.addUnusedAddress(savedSwap.address);
135
135
  }
136
136
  /**
137
137
  * Calculates the requested claimer bounty, based on client's request
@@ -179,8 +179,8 @@ class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
179
179
  restServer.post(this.path + "/getAddress", (0, Utils_1.expressHandlerWrapper)(async (req, res) => {
180
180
  const metadata = { request: {}, times: {} };
181
181
  const chainIdentifier = req.query.chain ?? this.chains.default;
182
- const { swapContract, signer } = this.getChain(chainIdentifier);
183
- const depositToken = req.query.depositToken ?? swapContract.getNativeCurrencyAddress();
182
+ const { swapContract, signer, chainInterface } = this.getChain(chainIdentifier);
183
+ const depositToken = req.query.depositToken ?? chainInterface.getNativeCurrencyAddress();
184
184
  this.checkAllowedDepositToken(chainIdentifier, depositToken);
185
185
  metadata.times.requestReceived = Date.now();
186
186
  /**
@@ -202,7 +202,7 @@ class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
202
202
  const parsedBody = await req.paramReader.getParams({
203
203
  address: (val) => val != null &&
204
204
  typeof (val) === "string" &&
205
- swapContract.isValidAddress(val) ? val : null,
205
+ chainInterface.isValidAddress(val) ? val : null,
206
206
  amount: SchemaVerifier_1.FieldTypeEnum.BigInt,
207
207
  token: (val) => val != null &&
208
208
  typeof (val) === "string" &&
@@ -216,7 +216,7 @@ class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
216
216
  msg: "Invalid request body"
217
217
  };
218
218
  metadata.request = parsedBody;
219
- const requestedAmount = { input: !parsedBody.exactOut, amount: parsedBody.amount };
219
+ const requestedAmount = { input: !parsedBody.exactOut, amount: parsedBody.amount, token: parsedBody.token };
220
220
  const request = {
221
221
  chainIdentifier,
222
222
  raw: req,
@@ -226,11 +226,11 @@ class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
226
226
  const useToken = parsedBody.token;
227
227
  //Check request params
228
228
  this.checkSequence(parsedBody.sequence);
229
- const fees = await this.preCheckAmounts(request, requestedAmount, useToken);
229
+ const fees = await this.AmountAssertions.preCheckFromBtcAmounts(this.type, request, requestedAmount);
230
230
  metadata.times.requestChecked = Date.now();
231
231
  //Create abortController for parallel prefetches
232
232
  const responseStream = res.responseStream;
233
- const abortController = this.getAbortController(responseStream);
233
+ const abortController = (0, Utils_1.getAbortController)(responseStream);
234
234
  //Pre-fetch data
235
235
  const { pricePrefetchPromise, gasTokenPricePrefetchPromise, depositTokenPricePrefetchPromise } = this.getFromBtcPricePrefetches(chainIdentifier, useToken, depositToken, abortController);
236
236
  const balancePrefetch = this.getBalancePrefetch(chainIdentifier, useToken, abortController);
@@ -239,7 +239,7 @@ class FromBtcAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
239
239
  abortController.signal.throwIfAborted();
240
240
  const baseSDPromise = this.getBaseSecurityDepositPrefetch(chainIdentifier, dummySwapData, depositToken, gasTokenPricePrefetchPromise, depositTokenPricePrefetchPromise, abortController);
241
241
  //Check valid amount specified (min/max)
242
- const { amountBD, swapFee, swapFeeInToken, totalInToken, securityDepositApyPPM, securityDepositBaseMultiplierPPM } = await this.checkFromBtcAmount(request, requestedAmount, fees, useToken, abortController.signal, pricePrefetchPromise);
242
+ const { amountBD, swapFee, swapFeeInToken, totalInToken, securityDepositApyPPM, securityDepositBaseMultiplierPPM } = await this.AmountAssertions.checkFromBtcAmount(this.type, request, { ...requestedAmount, pricePrefetch: pricePrefetchPromise }, fees, abortController.signal);
243
243
  metadata.times.priceCalculated = Date.now();
244
244
  if (securityDepositApyPPM != null)
245
245
  fees.securityDepositApyPPM = securityDepositApyPPM;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcSwapAbs = exports.FromBtcSwapState = void 0;
4
- const SwapHandler_1 = require("../SwapHandler");
4
+ const SwapHandler_1 = require("../../SwapHandler");
5
5
  const FromBtcBaseSwap_1 = require("../FromBtcBaseSwap");
6
6
  var FromBtcSwapState;
7
7
  (function (FromBtcSwapState) {
@@ -1,12 +1,12 @@
1
1
  import { Express } from "express";
2
2
  import { FromBtcLnSwapAbs, FromBtcLnSwapState } from "./FromBtcLnSwapAbs";
3
- import { MultichainData, SwapHandlerType } from "../SwapHandler";
4
- import { ISwapPrice } from "../ISwapPrice";
3
+ import { MultichainData, SwapHandlerType } from "../../SwapHandler";
4
+ import { ISwapPrice } from "../../../prices/ISwapPrice";
5
5
  import { ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData } from "@atomiqlabs/base";
6
- import { IIntermediaryStorage } from "../../storage/IIntermediaryStorage";
7
- import { FromBtcBaseConfig } from "../FromBtcBaseSwapHandler";
8
- import { FromBtcLnBaseSwapHandler } from "../FromBtcLnBaseSwapHandler";
9
- import { ILightningWallet } from "../../wallets/ILightningWallet";
6
+ import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
7
+ import { FromBtcBaseConfig, FromBtcBaseSwapHandler } from "../FromBtcBaseSwapHandler";
8
+ import { ILightningWallet } from "../../../wallets/ILightningWallet";
9
+ import { LightningAssertions } from "../../assertions/LightningAssertions";
10
10
  export type FromBtcLnConfig = FromBtcBaseConfig & {
11
11
  invoiceTimeoutSeconds?: number;
12
12
  minCltv: bigint;
@@ -23,10 +23,12 @@ export type FromBtcLnRequestType = {
23
23
  /**
24
24
  * Swap handler handling from BTCLN swaps using submarine swaps
25
25
  */
26
- export declare class FromBtcLnAbs extends FromBtcLnBaseSwapHandler<FromBtcLnSwapAbs, FromBtcLnSwapState> {
26
+ export declare class FromBtcLnAbs extends FromBtcBaseSwapHandler<FromBtcLnSwapAbs, FromBtcLnSwapState> {
27
27
  readonly type = SwapHandlerType.FROM_BTCLN;
28
28
  readonly swapType = ChainSwapType.HTLC;
29
29
  readonly config: FromBtcLnConfig;
30
+ readonly lightning: ILightningWallet;
31
+ readonly LightningAssertions: LightningAssertions;
30
32
  constructor(storageDirectory: IIntermediaryStorage<FromBtcLnSwapAbs>, path: string, chains: MultichainData, lightning: ILightningWallet, swapPricing: ISwapPrice, config: FromBtcLnConfig);
31
33
  protected processPastSwap(swap: FromBtcLnSwapAbs): Promise<"REFUND" | "SETTLE" | "CANCEL" | null>;
32
34
  protected refundSwaps(refundSwaps: FromBtcLnSwapAbs[]): Promise<void>;
@@ -3,23 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcLnAbs = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  const FromBtcLnSwapAbs_1 = require("./FromBtcLnSwapAbs");
6
- const SwapHandler_1 = require("../SwapHandler");
6
+ const SwapHandler_1 = require("../../SwapHandler");
7
7
  const base_1 = require("@atomiqlabs/base");
8
- const Utils_1 = require("../../utils/Utils");
9
- const PluginManager_1 = require("../../plugins/PluginManager");
10
- const SchemaVerifier_1 = require("../../utils/paramcoders/SchemaVerifier");
11
- const ServerParamDecoder_1 = require("../../utils/paramcoders/server/ServerParamDecoder");
12
- const FromBtcLnBaseSwapHandler_1 = require("../FromBtcLnBaseSwapHandler");
8
+ const Utils_1 = require("../../../utils/Utils");
9
+ const PluginManager_1 = require("../../../plugins/PluginManager");
10
+ const SchemaVerifier_1 = require("../../../utils/paramcoders/SchemaVerifier");
11
+ const ServerParamDecoder_1 = require("../../../utils/paramcoders/server/ServerParamDecoder");
12
+ const FromBtcBaseSwapHandler_1 = require("../FromBtcBaseSwapHandler");
13
+ const LightningAssertions_1 = require("../../assertions/LightningAssertions");
13
14
  /**
14
15
  * Swap handler handling from BTCLN swaps using submarine swaps
15
16
  */
16
- class FromBtcLnAbs extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
17
+ class FromBtcLnAbs extends FromBtcBaseSwapHandler_1.FromBtcBaseSwapHandler {
17
18
  constructor(storageDirectory, path, chains, lightning, swapPricing, config) {
18
- super(storageDirectory, path, chains, lightning, swapPricing);
19
+ super(storageDirectory, path, chains, swapPricing, config);
19
20
  this.type = SwapHandler_1.SwapHandlerType.FROM_BTCLN;
20
21
  this.swapType = base_1.ChainSwapType.HTLC;
21
22
  this.config = config;
22
23
  this.config.invoiceTimeoutSeconds = this.config.invoiceTimeoutSeconds || 90;
24
+ this.lightning = lightning;
25
+ this.LightningAssertions = new LightningAssertions_1.LightningAssertions(this.logger, lightning);
23
26
  }
24
27
  async processPastSwap(swap) {
25
28
  const { swapContract, signer } = this.getChain(swap.chainIdentifier);
@@ -392,8 +395,8 @@ class FromBtcLnAbs extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
392
395
  chainIdentifier = this.chains.default;
393
396
  address = invoice.description;
394
397
  }
395
- const { swapContract } = this.getChain(chainIdentifier);
396
- if (!swapContract.isValidAddress(address))
398
+ const { chainInterface } = this.getChain(chainIdentifier);
399
+ if (!chainInterface.isValidAddress(address))
397
400
  throw {
398
401
  _httpStatus: 200,
399
402
  code: 10001,
@@ -427,8 +430,8 @@ class FromBtcLnAbs extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
427
430
  restServer.post(this.path + "/createInvoice", (0, Utils_1.expressHandlerWrapper)(async (req, res) => {
428
431
  const metadata = { request: {}, times: {} };
429
432
  const chainIdentifier = req.query.chain ?? this.chains.default;
430
- const { swapContract, signer } = this.getChain(chainIdentifier);
431
- const depositToken = req.query.depositToken ?? swapContract.getNativeCurrencyAddress();
433
+ const { swapContract, signer, chainInterface } = this.getChain(chainIdentifier);
434
+ const depositToken = req.query.depositToken ?? chainInterface.getNativeCurrencyAddress();
432
435
  this.checkAllowedDepositToken(chainIdentifier, depositToken);
433
436
  metadata.times.requestReceived = Date.now();
434
437
  /**
@@ -445,7 +448,7 @@ class FromBtcLnAbs extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
445
448
  const parsedBody = await req.paramReader.getParams({
446
449
  address: (val) => val != null &&
447
450
  typeof (val) === "string" &&
448
- swapContract.isValidAddress(val) ? val : null,
451
+ chainInterface.isValidAddress(val) ? val : null,
449
452
  paymentHash: (val) => val != null &&
450
453
  typeof (val) === "string" &&
451
454
  val.length === 64 &&
@@ -463,7 +466,7 @@ class FromBtcLnAbs extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
463
466
  msg: "Invalid request body"
464
467
  };
465
468
  metadata.request = parsedBody;
466
- const requestedAmount = { input: !parsedBody.exactOut, amount: parsedBody.amount };
469
+ const requestedAmount = { input: !parsedBody.exactOut, amount: parsedBody.amount, token: parsedBody.token };
467
470
  const request = {
468
471
  chainIdentifier,
469
472
  raw: req,
@@ -473,22 +476,22 @@ class FromBtcLnAbs extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
473
476
  const useToken = parsedBody.token;
474
477
  //Check request params
475
478
  this.checkDescriptionHash(parsedBody.descriptionHash);
476
- const fees = await this.preCheckAmounts(request, requestedAmount, useToken);
479
+ const fees = await this.AmountAssertions.preCheckFromBtcAmounts(this.type, request, requestedAmount);
477
480
  metadata.times.requestChecked = Date.now();
478
481
  //Create abortController for parallel prefetches
479
482
  const responseStream = res.responseStream;
480
- const abortController = this.getAbortController(responseStream);
483
+ const abortController = (0, Utils_1.getAbortController)(responseStream);
481
484
  //Pre-fetch data
482
485
  const { pricePrefetchPromise, gasTokenPricePrefetchPromise, depositTokenPricePrefetchPromise } = this.getFromBtcPricePrefetches(chainIdentifier, useToken, depositToken, abortController);
483
486
  const balancePrefetch = this.getBalancePrefetch(chainIdentifier, useToken, abortController);
484
- const channelsPrefetch = this.getChannelsPrefetch(abortController);
487
+ const channelsPrefetch = this.LightningAssertions.getChannelsPrefetch(abortController);
485
488
  const dummySwapData = await this.getDummySwapData(chainIdentifier, useToken, parsedBody.address, parsedBody.paymentHash);
486
489
  abortController.signal.throwIfAborted();
487
490
  const baseSDPromise = this.getBaseSecurityDepositPrefetch(chainIdentifier, dummySwapData, depositToken, gasTokenPricePrefetchPromise, depositTokenPricePrefetchPromise, abortController);
488
491
  //Asynchronously send the node's public key to the client
489
492
  this.sendPublicKeyAsync(responseStream);
490
493
  //Check valid amount specified (min/max)
491
- const { amountBD, swapFee, swapFeeInToken, totalInToken, securityDepositApyPPM, securityDepositBaseMultiplierPPM } = await this.checkFromBtcAmount(request, requestedAmount, fees, useToken, abortController.signal, pricePrefetchPromise);
494
+ const { amountBD, swapFee, swapFeeInToken, totalInToken, securityDepositApyPPM, securityDepositBaseMultiplierPPM } = await this.AmountAssertions.checkFromBtcAmount(this.type, request, { ...requestedAmount, pricePrefetch: pricePrefetchPromise }, fees, abortController.signal);
492
495
  metadata.times.priceCalculated = Date.now();
493
496
  if (securityDepositApyPPM != null)
494
497
  fees.securityDepositApyPPM = securityDepositApyPPM;
@@ -496,7 +499,7 @@ class FromBtcLnAbs extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
496
499
  fees.securityDepositBaseMultiplierPPM = securityDepositBaseMultiplierPPM;
497
500
  //Check if we have enough funds to honor the request
498
501
  await this.checkBalance(totalInToken, balancePrefetch, abortController.signal);
499
- await this.checkInboundLiquidity(amountBD, channelsPrefetch, abortController.signal);
502
+ await this.LightningAssertions.checkInboundLiquidity(amountBD, channelsPrefetch, abortController.signal);
500
503
  metadata.times.balanceChecked = Date.now();
501
504
  //Create swap
502
505
  const hodlInvoiceObj = {
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcLnSwapAbs = exports.FromBtcLnSwapState = void 0;
4
- const __1 = require("../..");
4
+ const index_1 = require("../../../index");
5
5
  const FromBtcBaseSwap_1 = require("../FromBtcBaseSwap");
6
- const Utils_1 = require("../../utils/Utils");
6
+ const Utils_1 = require("../../../utils/Utils");
7
7
  var FromBtcLnSwapState;
8
8
  (function (FromBtcLnSwapState) {
9
9
  FromBtcLnSwapState[FromBtcLnSwapState["REFUNDED"] = -2] = "REFUNDED";
@@ -48,7 +48,7 @@ class FromBtcLnSwapAbs extends FromBtcBaseSwap_1.FromBtcBaseSwap {
48
48
  this.securityDeposit = this.data.getSecurityDeposit();
49
49
  }
50
50
  }
51
- this.type = __1.SwapHandlerType.FROM_BTCLN;
51
+ this.type = index_1.SwapHandlerType.FROM_BTCLN;
52
52
  }
53
53
  serialize() {
54
54
  const partialSerialized = super.serialize();
@@ -1,12 +1,12 @@
1
1
  import { Express } from "express";
2
2
  import { ToBtcSwapAbs, ToBtcSwapState } from "./ToBtcSwapAbs";
3
- import { MultichainData, SwapHandlerType } from "../SwapHandler";
4
- import { ISwapPrice } from "../ISwapPrice";
3
+ import { MultichainData, SwapHandlerType } from "../../SwapHandler";
4
+ import { ISwapPrice } from "../../../prices/ISwapPrice";
5
5
  import { BtcTx, ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData, BitcoinRpc, BtcBlock } from "@atomiqlabs/base";
6
- import { IIntermediaryStorage } from "../../storage/IIntermediaryStorage";
6
+ import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
7
7
  import { ToBtcBaseConfig, ToBtcBaseSwapHandler } from "../ToBtcBaseSwapHandler";
8
8
  import { PromiseQueue } from "promise-queue-ts";
9
- import { IBitcoinWallet } from "../../wallets/IBitcoinWallet";
9
+ import { IBitcoinWallet } from "../../../wallets/IBitcoinWallet";
10
10
  export type ToBtcConfig = ToBtcBaseConfig & {
11
11
  sendSafetyFactor: bigint;
12
12
  minChainCltv: bigint;
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ToBtcAbs = void 0;
4
4
  const ToBtcSwapAbs_1 = require("./ToBtcSwapAbs");
5
- const SwapHandler_1 = require("../SwapHandler");
5
+ const SwapHandler_1 = require("../../SwapHandler");
6
6
  const base_1 = require("@atomiqlabs/base");
7
- const Utils_1 = require("../../utils/Utils");
8
- const PluginManager_1 = require("../../plugins/PluginManager");
7
+ const Utils_1 = require("../../../utils/Utils");
8
+ const PluginManager_1 = require("../../../plugins/PluginManager");
9
9
  const crypto_1 = require("crypto");
10
- const SchemaVerifier_1 = require("../../utils/paramcoders/SchemaVerifier");
11
- const ServerParamDecoder_1 = require("../../utils/paramcoders/server/ServerParamDecoder");
10
+ const SchemaVerifier_1 = require("../../../utils/paramcoders/SchemaVerifier");
11
+ const ServerParamDecoder_1 = require("../../../utils/paramcoders/server/ServerParamDecoder");
12
12
  const ToBtcBaseSwapHandler_1 = require("../ToBtcBaseSwapHandler");
13
13
  const promise_queue_ts_1 = require("promise-queue-ts");
14
14
  const OUTPUT_SCRIPT_MAX_LENGTH = 200;
@@ -17,7 +17,7 @@ const OUTPUT_SCRIPT_MAX_LENGTH = 200;
17
17
  */
18
18
  class ToBtcAbs extends ToBtcBaseSwapHandler_1.ToBtcBaseSwapHandler {
19
19
  constructor(storageDirectory, path, chainData, bitcoin, swapPricing, bitcoinRpc, config) {
20
- super(storageDirectory, path, chainData, swapPricing);
20
+ super(storageDirectory, path, chainData, swapPricing, config);
21
21
  this.type = SwapHandler_1.SwapHandlerType.TO_BTC;
22
22
  this.swapType = base_1.ChainSwapType.CHAIN_NONCED;
23
23
  this.activeSubscriptions = {};
@@ -487,7 +487,7 @@ class ToBtcAbs extends ToBtcBaseSwapHandler_1.ToBtcBaseSwapHandler {
487
487
  restServer.post(this.path + "/payInvoice", (0, Utils_1.expressHandlerWrapper)(async (req, res) => {
488
488
  const metadata = { request: {}, times: {} };
489
489
  const chainIdentifier = req.query.chain ?? this.chains.default;
490
- const { swapContract, signer } = this.getChain(chainIdentifier);
490
+ const { swapContract, signer, chainInterface } = this.getChain(chainIdentifier);
491
491
  metadata.times.requestReceived = Date.now();
492
492
  /**
493
493
  *Sent initially:
@@ -514,7 +514,7 @@ class ToBtcAbs extends ToBtcBaseSwapHandler_1.ToBtcBaseSwapHandler {
514
514
  this.isTokenSupported(chainIdentifier, val) ? val : null,
515
515
  offerer: (val) => val != null &&
516
516
  typeof (val) === "string" &&
517
- swapContract.isValidAddress(val) ? val : null,
517
+ chainInterface.isValidAddress(val) ? val : null,
518
518
  exactIn: SchemaVerifier_1.FieldTypeEnum.BooleanOptional
519
519
  });
520
520
  if (parsedBody == null)
@@ -523,7 +523,7 @@ class ToBtcAbs extends ToBtcBaseSwapHandler_1.ToBtcBaseSwapHandler {
523
523
  msg: "Invalid request body"
524
524
  };
525
525
  metadata.request = parsedBody;
526
- const requestedAmount = { input: !!parsedBody.exactIn, amount: parsedBody.amount };
526
+ const requestedAmount = { input: !!parsedBody.exactIn, amount: parsedBody.amount, token: parsedBody.token };
527
527
  const request = {
528
528
  chainIdentifier,
529
529
  raw: req,
@@ -537,17 +537,18 @@ class ToBtcAbs extends ToBtcBaseSwapHandler_1.ToBtcBaseSwapHandler {
537
537
  this.checkRequiredConfirmations(parsedBody.confirmations);
538
538
  this.checkAddress(parsedBody.address);
539
539
  await this.checkVaultInitialized(chainIdentifier, parsedBody.token);
540
- const fees = await this.preCheckAmounts(request, requestedAmount, useToken);
540
+ const fees = await this.AmountAssertions.preCheckToBtcAmounts(this.type, request, requestedAmount);
541
541
  metadata.times.requestChecked = Date.now();
542
542
  //Initialize abort controller for the parallel async operations
543
- const abortController = this.getAbortController(responseStream);
543
+ const abortController = (0, Utils_1.getAbortController)(responseStream);
544
544
  const { pricePrefetchPromise, signDataPrefetchPromise } = this.getToBtcPrefetches(chainIdentifier, useToken, responseStream, abortController);
545
- const { amountBD, networkFeeData, totalInToken, swapFee, swapFeeInToken, networkFeeInToken } = await this.checkToBtcAmount(request, requestedAmount, fees, useToken, async (amount) => {
545
+ const { amountBD, networkFeeData, totalInToken, swapFee, swapFeeInToken, networkFeeInToken } = await this.AmountAssertions.checkToBtcAmount(this.type, request, { ...requestedAmount, pricePrefetch: pricePrefetchPromise }, fees, async (amount) => {
546
546
  metadata.times.amountsChecked = Date.now();
547
547
  const resp = await this.checkAndGetNetworkFee(parsedBody.address, amount);
548
+ this.logger.debug("checkToBtcAmount(): network fee calculated, amount: " + amount.toString(10) + " fee: " + resp.networkFee.toString(10));
548
549
  metadata.times.chainFeeCalculated = Date.now();
549
550
  return resp;
550
- }, abortController.signal, pricePrefetchPromise);
551
+ }, abortController.signal);
551
552
  metadata.times.priceCalculated = Date.now();
552
553
  const paymentHash = this.getHash(chainIdentifier, parsedBody.address, parsedBody.confirmations, parsedBody.nonce, amountBD).toString("hex");
553
554
  //Add grace period another time, so the user has 1 hour to commit
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ToBtcSwapAbs = exports.ToBtcSwapState = void 0;
4
- const __1 = require("../..");
4
+ const index_1 = require("../../../index");
5
5
  const ToBtcBaseSwap_1 = require("../ToBtcBaseSwap");
6
- const Utils_1 = require("../../utils/Utils");
6
+ const Utils_1 = require("../../../utils/Utils");
7
7
  var ToBtcSwapState;
8
8
  (function (ToBtcSwapState) {
9
9
  ToBtcSwapState[ToBtcSwapState["REFUNDED"] = -3] = "REFUNDED";
@@ -37,7 +37,7 @@ class ToBtcSwapAbs extends ToBtcBaseSwap_1.ToBtcBaseSwap {
37
37
  //Compatibility
38
38
  this.quotedNetworkFee ?? (this.quotedNetworkFee = (0, Utils_1.deserializeBN)(chainIdOrObj.networkFee));
39
39
  }
40
- this.type = __1.SwapHandlerType.TO_BTC;
40
+ this.type = index_1.SwapHandlerType.TO_BTC;
41
41
  }
42
42
  serialize() {
43
43
  const partialSerialized = super.serialize();
@@ -1,11 +1,12 @@
1
1
  import { Express } from "express";
2
2
  import { ToBtcLnSwapAbs, ToBtcLnSwapState } from "./ToBtcLnSwapAbs";
3
- import { MultichainData, SwapHandlerType } from "../SwapHandler";
4
- import { ISwapPrice } from "../ISwapPrice";
3
+ import { MultichainData, SwapHandlerType } from "../../SwapHandler";
4
+ import { ISwapPrice } from "../../../prices/ISwapPrice";
5
5
  import { ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData } from "@atomiqlabs/base";
6
- import { IIntermediaryStorage } from "../../storage/IIntermediaryStorage";
6
+ import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
7
7
  import { ToBtcBaseConfig, ToBtcBaseSwapHandler } from "../ToBtcBaseSwapHandler";
8
- import { ILightningWallet, ParsedPaymentRequest } from "../../wallets/ILightningWallet";
8
+ import { ILightningWallet, ParsedPaymentRequest } from "../../../wallets/ILightningWallet";
9
+ import { LightningAssertions } from "../../assertions/LightningAssertions";
9
10
  export type ToBtcLnConfig = ToBtcBaseConfig & {
10
11
  routingFeeMultiplier: bigint;
11
12
  minSendCltv: bigint;
@@ -54,12 +55,7 @@ export type ToBtcLnRequestType = {
54
55
  * Swap handler handling to BTCLN swaps using submarine swaps
55
56
  */
56
57
  export declare class ToBtcLnAbs extends ToBtcBaseSwapHandler<ToBtcLnSwapAbs, ToBtcLnSwapState> {
57
- protected readonly LIGHTNING_LIQUIDITY_CACHE_TIMEOUT: number;
58
58
  activeSubscriptions: Set<string>;
59
- lightningLiquidityCache: {
60
- liquidity: bigint;
61
- timestamp: number;
62
- };
63
59
  readonly type = SwapHandlerType.TO_BTCLN;
64
60
  readonly swapType = ChainSwapType.HTLC;
65
61
  readonly config: ToBtcLnConfig & {
@@ -69,6 +65,7 @@ export declare class ToBtcLnAbs extends ToBtcBaseSwapHandler<ToBtcLnSwapAbs, ToB
69
65
  [reqId: string]: ExactInAuthorization;
70
66
  };
71
67
  readonly lightning: ILightningWallet;
68
+ readonly LightningAssertions: LightningAssertions;
72
69
  constructor(storageDirectory: IIntermediaryStorage<ToBtcLnSwapAbs>, path: string, chainData: MultichainData, lightning: ILightningWallet, swapPricing: ISwapPrice, config: ToBtcLnConfig);
73
70
  /**
74
71
  * Cleans up exactIn authorization that are already past their expiry
@@ -143,23 +140,6 @@ export declare class ToBtcLnAbs extends ToBtcBaseSwapHandler<ToBtcLnSwapAbs, ToB
143
140
  * @throws {DefinedRuntimeError} will throw an error if the expiry time is too short
144
141
  */
145
142
  private checkExpiry;
146
- /**
147
- * Checks if the prior payment with the same paymentHash exists
148
- *
149
- * @param paymentHash
150
- * @param abortSignal
151
- * @throws {DefinedRuntimeError} will throw an error if payment already exists
152
- */
153
- private checkPriorPayment;
154
- /**
155
- * Checks if the underlying LND backend has enough liquidity in channels to honor the swap
156
- *
157
- * @param amount
158
- * @param abortSignal
159
- * @param useCached Whether to use cached liquidity values
160
- * @throws {DefinedRuntimeError} will throw an error if there isn't enough liquidity
161
- */
162
- private checkLiquidity;
163
143
  /**
164
144
  * Estimates the routing fee & confidence by either probing or routing (if probing fails), the fee is also adjusted
165
145
  * according to routing fee multiplier, and subject to minimums set in config