@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
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcTrustedSwap = exports.FromBtcTrustedSwapState = void 0;
4
4
  const base_1 = require("@atomiqlabs/base");
5
- const FromBtcBaseSwap_1 = require("../FromBtcBaseSwap");
6
- const Utils_1 = require("../../utils/Utils");
5
+ const Utils_1 = require("../../../utils/Utils");
7
6
  const crypto_1 = require("crypto");
7
+ const SwapHandlerSwap_1 = require("../../SwapHandlerSwap");
8
+ const SwapHandler_1 = require("../../SwapHandler");
8
9
  var FromBtcTrustedSwapState;
9
10
  (function (FromBtcTrustedSwapState) {
10
11
  FromBtcTrustedSwapState[FromBtcTrustedSwapState["DOUBLE_SPENT"] = -4] = "DOUBLE_SPENT";
@@ -18,12 +19,13 @@ var FromBtcTrustedSwapState;
18
19
  FromBtcTrustedSwapState[FromBtcTrustedSwapState["CONFIRMED"] = 4] = "CONFIRMED";
19
20
  FromBtcTrustedSwapState[FromBtcTrustedSwapState["FINISHED"] = 5] = "FINISHED";
20
21
  })(FromBtcTrustedSwapState = exports.FromBtcTrustedSwapState || (exports.FromBtcTrustedSwapState = {}));
21
- class FromBtcTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
22
+ class FromBtcTrustedSwap extends SwapHandlerSwap_1.SwapHandlerSwap {
22
23
  constructor(objOrChainIdentifier, swapFee, swapFeeInToken, btcAddress, inputSats, dstAddress, outputTokens, createdHeight, expiresAt, recommendedFee, refundAddress, token) {
23
24
  if (typeof (objOrChainIdentifier) === "string") {
24
- super(objOrChainIdentifier, inputSats, swapFee, swapFeeInToken);
25
+ super(objOrChainIdentifier, swapFee, swapFeeInToken);
25
26
  this.state = FromBtcTrustedSwapState.CREATED;
26
27
  this.doubleSpent = false;
28
+ this.amount = inputSats;
27
29
  this.sequence = base_1.BigIntBufferUtils.fromBuffer((0, crypto_1.randomBytes)(8));
28
30
  this.btcAddress = btcAddress;
29
31
  this.dstAddress = dstAddress;
@@ -37,6 +39,7 @@ class FromBtcTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
37
39
  else {
38
40
  super(objOrChainIdentifier);
39
41
  this.btcAddress = objOrChainIdentifier.btcAddress;
42
+ this.amount = (0, Utils_1.deserializeBN)(objOrChainIdentifier.amount);
40
43
  this.sequence = (0, Utils_1.deserializeBN)(objOrChainIdentifier.sequence);
41
44
  this.dstAddress = objOrChainIdentifier.dstAddress;
42
45
  this.outputTokens = (0, Utils_1.deserializeBN)(objOrChainIdentifier.outputTokens);
@@ -57,10 +60,12 @@ class FromBtcTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
57
60
  this.refundTxId = objOrChainIdentifier.refundTxId;
58
61
  this.token = objOrChainIdentifier.token;
59
62
  }
63
+ this.type = SwapHandler_1.SwapHandlerType.FROM_BTC_TRUSTED;
60
64
  }
61
65
  serialize() {
62
66
  const partialSerialized = super.serialize();
63
67
  partialSerialized.btcAddress = this.btcAddress;
68
+ partialSerialized.amount = (0, Utils_1.serializeBN)(this.amount);
64
69
  partialSerialized.sequence = (0, Utils_1.serializeBN)(this.sequence);
65
70
  partialSerialized.dstAddress = this.dstAddress;
66
71
  partialSerialized.outputTokens = (0, Utils_1.serializeBN)(this.outputTokens);
@@ -82,9 +87,6 @@ class FromBtcTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
82
87
  partialSerialized.token = this.token;
83
88
  return partialSerialized;
84
89
  }
85
- getClaimHash() {
86
- return (0, crypto_1.createHash)("sha256").update(this.btcAddress).digest().toString("hex");
87
- }
88
90
  getSequence() {
89
91
  return this.sequence;
90
92
  }
@@ -97,6 +99,9 @@ class FromBtcTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
97
99
  getTotalInputAmount() {
98
100
  return this.adjustedInput || this.amount;
99
101
  }
102
+ getSwapFee() {
103
+ return { inInputToken: this.swapFee, inOutputToken: this.swapFeeInToken };
104
+ }
100
105
  isFailed() {
101
106
  return this.state === FromBtcTrustedSwapState.EXPIRED || this.state === FromBtcTrustedSwapState.REFUNDED || this.state === FromBtcTrustedSwapState.DOUBLE_SPENT;
102
107
  }
@@ -106,5 +111,8 @@ class FromBtcTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
106
111
  isSuccess() {
107
112
  return this.state === FromBtcTrustedSwapState.CONFIRMED;
108
113
  }
114
+ getIdentifierHash() {
115
+ return (0, crypto_1.createHash)("sha256").update(this.btcAddress).digest().toString("hex");
116
+ }
109
117
  }
110
118
  exports.FromBtcTrustedSwap = FromBtcTrustedSwap;
@@ -1,13 +1,12 @@
1
1
  import { Express } from "express";
2
- import { ClaimEvent, InitializeEvent, RefundEvent, SwapData } from "@atomiqlabs/base";
3
2
  import { FromBtcLnTrustedSwap, FromBtcLnTrustedSwapState } from "./FromBtcLnTrustedSwap";
4
- import { FromBtcBaseConfig } from "../FromBtcBaseSwapHandler";
5
- import { ISwapPrice } from "../ISwapPrice";
6
- import { MultichainData, SwapHandlerType } from "../SwapHandler";
7
- import { IIntermediaryStorage } from "../../storage/IIntermediaryStorage";
8
- import { FromBtcLnBaseSwapHandler } from "../FromBtcLnBaseSwapHandler";
9
- import { ILightningWallet } from "../../wallets/ILightningWallet";
10
- export type SwapForGasServerConfig = FromBtcBaseConfig & {
3
+ import { ISwapPrice } from "../../../prices/ISwapPrice";
4
+ import { MultichainData, SwapBaseConfig, SwapHandler, SwapHandlerType } from "../../SwapHandler";
5
+ import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
6
+ import { ILightningWallet } from "../../../wallets/ILightningWallet";
7
+ import { FromBtcAmountAssertions } from "../../assertions/FromBtcAmountAssertions";
8
+ import { LightningAssertions } from "../../assertions/LightningAssertions";
9
+ export type SwapForGasServerConfig = SwapBaseConfig & {
11
10
  minCltv: bigint;
12
11
  invoiceTimeoutSeconds?: number;
13
12
  };
@@ -20,12 +19,14 @@ export type FromBtcLnTrustedRequestType = {
20
19
  /**
21
20
  * Swap handler handling from BTCLN swaps using submarine swaps
22
21
  */
23
- export declare class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler<FromBtcLnTrustedSwap, FromBtcLnTrustedSwapState> {
24
- readonly type: SwapHandlerType;
25
- readonly swapType: any;
22
+ export declare class FromBtcLnTrusted extends SwapHandler<FromBtcLnTrustedSwap, FromBtcLnTrustedSwapState> {
23
+ readonly type = SwapHandlerType.FROM_BTCLN_TRUSTED;
26
24
  activeSubscriptions: Map<string, AbortController>;
27
25
  processedTxIds: Map<string, string>;
28
26
  readonly config: SwapForGasServerConfig;
27
+ readonly lightning: ILightningWallet;
28
+ readonly LightningAssertions: LightningAssertions;
29
+ readonly AmountAssertions: FromBtcAmountAssertions;
29
30
  constructor(storageDirectory: IIntermediaryStorage<FromBtcLnTrustedSwap>, path: string, chains: MultichainData, lightning: ILightningWallet, swapPricing: ISwapPrice, config: SwapForGasServerConfig);
30
31
  /**
31
32
  * Unsubscribe from the pending lightning network invoice
@@ -72,7 +73,4 @@ export declare class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler<FromBtcLn
72
73
  startRestServer(restServer: Express): void;
73
74
  init(): Promise<void>;
74
75
  getInfoData(): any;
75
- protected processClaimEvent(chainIdentifier: string, swap: FromBtcLnTrustedSwap, event: ClaimEvent<SwapData>): Promise<void>;
76
- protected processInitializeEvent(chainIdentifier: string, swap: FromBtcLnTrustedSwap, event: InitializeEvent<SwapData>): Promise<void>;
77
- protected processRefundEvent(chainIdentifier: string, swap: FromBtcLnTrustedSwap, event: RefundEvent<SwapData>): Promise<void>;
78
76
  }
@@ -3,21 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcLnTrusted = void 0;
4
4
  const crypto_1 = require("crypto");
5
5
  const FromBtcLnTrustedSwap_1 = require("./FromBtcLnTrustedSwap");
6
- const SwapHandler_1 = require("../SwapHandler");
7
- const Utils_1 = require("../../utils/Utils");
8
- const SchemaVerifier_1 = require("../../utils/paramcoders/SchemaVerifier");
9
- const PluginManager_1 = require("../../plugins/PluginManager");
10
- const FromBtcLnBaseSwapHandler_1 = require("../FromBtcLnBaseSwapHandler");
6
+ const SwapHandler_1 = require("../../SwapHandler");
7
+ const Utils_1 = require("../../../utils/Utils");
8
+ const SchemaVerifier_1 = require("../../../utils/paramcoders/SchemaVerifier");
9
+ const PluginManager_1 = require("../../../plugins/PluginManager");
10
+ const FromBtcAmountAssertions_1 = require("../../assertions/FromBtcAmountAssertions");
11
+ const LightningAssertions_1 = require("../../assertions/LightningAssertions");
11
12
  /**
12
13
  * Swap handler handling from BTCLN swaps using submarine swaps
13
14
  */
14
- class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandler {
15
+ class FromBtcLnTrusted extends SwapHandler_1.SwapHandler {
15
16
  constructor(storageDirectory, path, chains, lightning, swapPricing, config) {
16
- super(storageDirectory, path, chains, lightning, swapPricing);
17
+ super(storageDirectory, path, chains, swapPricing);
17
18
  this.type = SwapHandler_1.SwapHandlerType.FROM_BTCLN_TRUSTED;
18
- this.swapType = null;
19
19
  this.activeSubscriptions = new Map();
20
20
  this.processedTxIds = new Map();
21
+ this.lightning = lightning;
22
+ this.LightningAssertions = new LightningAssertions_1.LightningAssertions(this.logger, lightning);
23
+ this.AmountAssertions = new FromBtcAmountAssertions_1.FromBtcAmountAssertions(config, swapPricing);
21
24
  this.config = config;
22
25
  this.config.invoiceTimeoutSeconds = this.config.invoiceTimeoutSeconds || 90;
23
26
  }
@@ -145,7 +148,7 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
145
148
  * @param invoice
146
149
  */
147
150
  async htlcReceived(invoiceData, invoice) {
148
- const { swapContract, signer } = this.getChain(invoiceData.chainIdentifier);
151
+ const { signer, chainInterface } = this.getChain(invoiceData.chainIdentifier);
149
152
  //Important to prevent race condition and issuing 2 signed init messages at the same time
150
153
  if (invoiceData.state === FromBtcLnTrustedSwap_1.FromBtcLnTrustedSwapState.CREATED) {
151
154
  if (invoiceData.metadata != null)
@@ -154,7 +157,7 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
154
157
  await this.storageManager.saveData(invoice.id, null, invoiceData);
155
158
  }
156
159
  if (invoiceData.state === FromBtcLnTrustedSwap_1.FromBtcLnTrustedSwapState.RECEIVED) {
157
- const balance = swapContract.getBalance(signer.getAddress(), invoiceData.token, false);
160
+ const balance = chainInterface.getBalance(signer.getAddress(), invoiceData.token);
158
161
  try {
159
162
  await this.checkBalance(invoiceData.output, balance, null);
160
163
  if (invoiceData.metadata != null)
@@ -166,11 +169,11 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
166
169
  }
167
170
  if (invoiceData.state !== FromBtcLnTrustedSwap_1.FromBtcLnTrustedSwapState.RECEIVED)
168
171
  return;
169
- const txns = await swapContract.txsTransfer(signer.getAddress(), invoiceData.token, invoiceData.output, invoiceData.dstAddress);
172
+ const txns = await chainInterface.txsTransfer(signer.getAddress(), invoiceData.token, invoiceData.output, invoiceData.dstAddress);
170
173
  let unlock = invoiceData.lock(Infinity);
171
174
  if (unlock == null)
172
175
  return;
173
- const result = await swapContract.sendAndConfirm(signer, txns, true, null, false, async (txId, rawTx) => {
176
+ const result = await chainInterface.sendAndConfirm(signer, txns, true, null, false, async (txId, rawTx) => {
174
177
  invoiceData.txIds = { init: txId };
175
178
  invoiceData.scRawTx = rawTx;
176
179
  if (invoiceData.state === FromBtcLnTrustedSwap_1.FromBtcLnTrustedSwapState.RECEIVED) {
@@ -202,7 +205,7 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
202
205
  if (invoiceData.state === FromBtcLnTrustedSwap_1.FromBtcLnTrustedSwapState.SENT) {
203
206
  if (invoiceData.isLocked())
204
207
  return;
205
- const txStatus = await swapContract.getTxStatus(invoiceData.scRawTx);
208
+ const txStatus = await chainInterface.getTxStatus(invoiceData.scRawTx);
206
209
  if (txStatus === "not_found") {
207
210
  //Retry
208
211
  invoiceData.txIds = { init: null };
@@ -269,8 +272,8 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
269
272
  chainIdentifier = this.chains.default;
270
273
  address = invoice.description;
271
274
  }
272
- const { swapContract } = this.getChain(chainIdentifier);
273
- if (!swapContract.isValidAddress(address))
275
+ const { chainInterface } = this.getChain(chainIdentifier);
276
+ if (!chainInterface.isValidAddress(address))
274
277
  throw {
275
278
  _httpStatus: 200,
276
279
  code: 10001,
@@ -309,17 +312,17 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
309
312
  var _a;
310
313
  const metadata = { request: {}, times: {} };
311
314
  const chainIdentifier = req.query.chain ?? this.chains.default;
312
- const { swapContract, signer } = this.getChain(chainIdentifier);
315
+ const { signer, chainInterface } = this.getChain(chainIdentifier);
313
316
  metadata.times.requestReceived = Date.now();
314
317
  /**
315
318
  * address: string solana address of the recipient
316
319
  * amount: string amount (in lamports/smart chain base units) of the invoice
317
320
  */
318
- (_a = req.query).token ?? (_a.token = swapContract.getNativeCurrencyAddress());
321
+ (_a = req.query).token ?? (_a.token = chainInterface.getNativeCurrencyAddress());
319
322
  const parsedBody = (0, SchemaVerifier_1.verifySchema)(req.query, {
320
323
  address: (val) => val != null &&
321
324
  typeof (val) === "string" &&
322
- swapContract.isValidAddress(val) ? val : null,
325
+ chainInterface.isValidAddress(val) ? val : null,
323
326
  token: (val) => val != null &&
324
327
  typeof (val) === "string" &&
325
328
  this.isTokenSupported(chainIdentifier, val) ? val : null,
@@ -333,7 +336,7 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
333
336
  msg: "Invalid request body"
334
337
  };
335
338
  metadata.request = parsedBody;
336
- const requestedAmount = { input: parsedBody.exactIn, amount: parsedBody.amount };
339
+ const requestedAmount = { input: parsedBody.exactIn, amount: parsedBody.amount, token: parsedBody.token };
337
340
  const request = {
338
341
  chainIdentifier,
339
342
  raw: req,
@@ -342,25 +345,29 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
342
345
  };
343
346
  const useToken = parsedBody.token;
344
347
  //Check request params
345
- const fees = await this.preCheckAmounts(request, requestedAmount, useToken);
348
+ const fees = await this.AmountAssertions.preCheckFromBtcAmounts(this.type, request, requestedAmount);
346
349
  metadata.times.requestChecked = Date.now();
347
350
  //Create abortController for parallel prefetches
348
351
  const responseStream = res.responseStream;
349
- const abortController = this.getAbortController(responseStream);
352
+ const abortController = (0, Utils_1.getAbortController)(responseStream);
350
353
  //Pre-fetch data
351
- const { pricePrefetchPromise } = this.getFromBtcPricePrefetches(chainIdentifier, useToken, useToken, abortController);
352
- const balancePrefetch = swapContract.getBalance(signer.getAddress(), useToken, false).catch(e => {
354
+ const pricePrefetchPromise = this.swapPricing.preFetchPrice(useToken, chainIdentifier).catch(e => {
355
+ this.logger.error("pricePrefetchPromise(): pricePrefetch error: ", e);
356
+ abortController.abort(e);
357
+ return null;
358
+ });
359
+ const balancePrefetch = chainInterface.getBalance(signer.getAddress(), useToken).catch(e => {
353
360
  this.logger.error("getBalancePrefetch(): balancePrefetch error: ", e);
354
361
  abortController.abort(e);
355
362
  return null;
356
363
  });
357
- const channelsPrefetch = this.getChannelsPrefetch(abortController);
364
+ const channelsPrefetch = this.LightningAssertions.getChannelsPrefetch(abortController);
358
365
  //Check valid amount specified (min/max)
359
- const { amountBD, swapFee, swapFeeInToken, totalInToken } = await this.checkFromBtcAmount(request, requestedAmount, fees, useToken, abortController.signal, pricePrefetchPromise);
366
+ const { amountBD, swapFee, swapFeeInToken, totalInToken } = await this.AmountAssertions.checkFromBtcAmount(this.type, request, { ...requestedAmount, pricePrefetch: pricePrefetchPromise }, fees, abortController.signal);
360
367
  metadata.times.priceCalculated = Date.now();
361
368
  //Check if we have enough funds to honor the request
362
369
  await this.checkBalance(totalInToken, balancePrefetch, abortController.signal);
363
- await this.checkInboundLiquidity(amountBD, channelsPrefetch, abortController.signal);
370
+ await this.LightningAssertions.checkInboundLiquidity(amountBD, channelsPrefetch, abortController.signal);
364
371
  metadata.times.balanceChecked = Date.now();
365
372
  const secret = (0, crypto_1.randomBytes)(32);
366
373
  const hash = (0, crypto_1.createHash)("sha256").update(secret).digest();
@@ -482,14 +489,5 @@ class FromBtcLnTrusted extends FromBtcLnBaseSwapHandler_1.FromBtcLnBaseSwapHandl
482
489
  minCltv: Number(this.config.minCltv)
483
490
  };
484
491
  }
485
- processClaimEvent(chainIdentifier, swap, event) {
486
- return Promise.resolve();
487
- }
488
- processInitializeEvent(chainIdentifier, swap, event) {
489
- return Promise.resolve();
490
- }
491
- processRefundEvent(chainIdentifier, swap, event) {
492
- return Promise.resolve();
493
- }
494
492
  }
495
493
  exports.FromBtcLnTrusted = FromBtcLnTrusted;
@@ -1,5 +1,4 @@
1
- import { SwapData } from "@atomiqlabs/base";
2
- import { FromBtcBaseSwap } from "../FromBtcBaseSwap";
1
+ import { SwapHandlerSwap } from "../../SwapHandlerSwap";
3
2
  export declare enum FromBtcLnTrustedSwapState {
4
3
  REFUNDED = -2,
5
4
  CANCELED = -1,
@@ -9,8 +8,9 @@ export declare enum FromBtcLnTrustedSwapState {
9
8
  CONFIRMED = 3,
10
9
  SETTLED = 4
11
10
  }
12
- export declare class FromBtcLnTrustedSwap<T extends SwapData = SwapData> extends FromBtcBaseSwap<T, FromBtcLnTrustedSwapState> {
11
+ export declare class FromBtcLnTrustedSwap extends SwapHandlerSwap<FromBtcLnTrustedSwapState> {
13
12
  readonly pr: string;
13
+ amount: bigint;
14
14
  readonly output: bigint;
15
15
  readonly dstAddress: string;
16
16
  readonly secret: string;
@@ -20,10 +20,15 @@ export declare class FromBtcLnTrustedSwap<T extends SwapData = SwapData> extends
20
20
  constructor(obj: any);
21
21
  getToken(): string;
22
22
  getOutputAmount(): bigint;
23
- getClaimHash(): string;
23
+ getSwapFee(): {
24
+ inInputToken: bigint;
25
+ inOutputToken: bigint;
26
+ };
27
+ getTotalInputAmount(): bigint;
24
28
  getSequence(): bigint;
25
29
  serialize(): any;
26
30
  isFailed(): boolean;
27
31
  isInitiated(): boolean;
28
32
  isSuccess(): boolean;
33
+ getIdentifierHash(): string;
29
34
  }
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcLnTrustedSwap = exports.FromBtcLnTrustedSwapState = void 0;
4
4
  const crypto_1 = require("crypto");
5
- const FromBtcBaseSwap_1 = require("../FromBtcBaseSwap");
6
- const Utils_1 = require("../../utils/Utils");
5
+ const Utils_1 = require("../../../utils/Utils");
6
+ const SwapHandlerSwap_1 = require("../../SwapHandlerSwap");
7
+ const SwapHandler_1 = require("../../SwapHandler");
7
8
  var FromBtcLnTrustedSwapState;
8
9
  (function (FromBtcLnTrustedSwapState) {
9
10
  FromBtcLnTrustedSwapState[FromBtcLnTrustedSwapState["REFUNDED"] = -2] = "REFUNDED";
@@ -14,12 +15,13 @@ var FromBtcLnTrustedSwapState;
14
15
  FromBtcLnTrustedSwapState[FromBtcLnTrustedSwapState["CONFIRMED"] = 3] = "CONFIRMED";
15
16
  FromBtcLnTrustedSwapState[FromBtcLnTrustedSwapState["SETTLED"] = 4] = "SETTLED";
16
17
  })(FromBtcLnTrustedSwapState = exports.FromBtcLnTrustedSwapState || (exports.FromBtcLnTrustedSwapState = {}));
17
- class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
18
+ class FromBtcLnTrustedSwap extends SwapHandlerSwap_1.SwapHandlerSwap {
18
19
  constructor(chainIdOrObj, pr, inputMtokens, swapFee, swapFeeInToken, output, secret, dstAddress, token) {
19
20
  if (typeof (chainIdOrObj) === "string") {
20
- super(chainIdOrObj, (inputMtokens + 999n) / 1000n, swapFee, swapFeeInToken);
21
+ super(chainIdOrObj, swapFee, swapFeeInToken);
21
22
  this.state = FromBtcLnTrustedSwapState.CREATED;
22
23
  this.pr = pr;
24
+ this.amount = (inputMtokens + 999n) / 1000n;
23
25
  this.output = output;
24
26
  this.secret = secret;
25
27
  this.dstAddress = dstAddress;
@@ -28,13 +30,14 @@ class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
28
30
  else {
29
31
  super(chainIdOrObj);
30
32
  this.pr = chainIdOrObj.pr;
33
+ this.amount = (0, Utils_1.deserializeBN)(chainIdOrObj.amount);
31
34
  this.output = (0, Utils_1.deserializeBN)(chainIdOrObj.output);
32
35
  this.secret = chainIdOrObj.secret;
33
36
  this.dstAddress = chainIdOrObj.dstAddress;
34
37
  this.token = chainIdOrObj.token;
35
38
  this.scRawTx = chainIdOrObj.scRawTx;
36
39
  }
37
- this.type = null;
40
+ this.type = SwapHandler_1.SwapHandlerType.FROM_BTCLN_TRUSTED;
38
41
  }
39
42
  getToken() {
40
43
  return this.token;
@@ -42,8 +45,11 @@ class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
42
45
  getOutputAmount() {
43
46
  return this.output;
44
47
  }
45
- getClaimHash() {
46
- return (0, crypto_1.createHash)("sha256").update(Buffer.from(this.secret, "hex")).digest().toString("hex");
48
+ getSwapFee() {
49
+ return { inInputToken: this.swapFee, inOutputToken: this.swapFeeInToken };
50
+ }
51
+ getTotalInputAmount() {
52
+ return this.amount;
47
53
  }
48
54
  getSequence() {
49
55
  return 0n;
@@ -51,6 +57,7 @@ class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
51
57
  serialize() {
52
58
  const partialSerialized = super.serialize();
53
59
  partialSerialized.pr = this.pr;
60
+ partialSerialized.amount = (0, Utils_1.serializeBN)(this.amount);
54
61
  partialSerialized.output = (0, Utils_1.serializeBN)(this.output);
55
62
  partialSerialized.secret = this.secret;
56
63
  partialSerialized.dstAddress = this.dstAddress;
@@ -67,5 +74,8 @@ class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
67
74
  isSuccess() {
68
75
  return this.state === FromBtcLnTrustedSwapState.SETTLED;
69
76
  }
77
+ getIdentifierHash() {
78
+ return (0, crypto_1.createHash)("sha256").update(Buffer.from(this.secret, "hex")).digest().toString("hex");
79
+ }
70
80
  }
71
81
  exports.FromBtcLnTrustedSwap = FromBtcLnTrustedSwap;
@@ -10,12 +10,20 @@ export declare function isDefinedRuntimeError(obj: any): obj is DefinedRuntimeEr
10
10
  export declare function expressHandlerWrapper(func: (req: Request, res: Response) => Promise<void>): ((req: Request, res: Response & {
11
11
  responseStream: ServerParamEncoder;
12
12
  }) => void);
13
- export declare function getLogger(prefix: string): {
14
- debug: (msg: any, ...args: any[]) => void;
15
- info: (msg: any, ...args: any[]) => void;
16
- warn: (msg: any, ...args: any[]) => void;
17
- error: (msg: any, ...args: any[]) => void;
13
+ export type LoggerType = {
14
+ debug: (msg: string, ...args: any[]) => void;
15
+ info: (msg: string, ...args: any[]) => void;
16
+ warn: (msg: string, ...args: any[]) => void;
17
+ error: (msg: string, ...args: any[]) => void;
18
18
  };
19
+ export declare function getLogger(prefix: string): LoggerType;
19
20
  export declare const HEX_REGEX: RegExp;
20
21
  export declare function serializeBN(bn: bigint | null): string | null;
21
22
  export declare function deserializeBN(str: string | null): bigint | null;
23
+ export declare function bigIntSorter(a: bigint, b: bigint): -1 | 0 | 1;
24
+ /**
25
+ * Creates an abort controller that extends the responseStream's abort signal
26
+ *
27
+ * @param responseStream
28
+ */
29
+ export declare function getAbortController(responseStream: ServerParamEncoder): AbortController;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deserializeBN = exports.serializeBN = exports.HEX_REGEX = exports.getLogger = exports.expressHandlerWrapper = exports.isDefinedRuntimeError = void 0;
3
+ exports.getAbortController = exports.bigIntSorter = exports.deserializeBN = exports.serializeBN = exports.HEX_REGEX = exports.getLogger = exports.expressHandlerWrapper = exports.isDefinedRuntimeError = void 0;
4
4
  function isDefinedRuntimeError(obj) {
5
5
  if (obj.code != null && typeof (obj.code) === "number") {
6
6
  if (obj.msg != null && typeof (obj.msg) !== "string")
@@ -64,3 +64,25 @@ function deserializeBN(str) {
64
64
  return str == null ? null : BigInt(str);
65
65
  }
66
66
  exports.deserializeBN = deserializeBN;
67
+ function bigIntSorter(a, b) {
68
+ if (a < b)
69
+ return -1;
70
+ if (a > b)
71
+ return 1;
72
+ return 0;
73
+ }
74
+ exports.bigIntSorter = bigIntSorter;
75
+ /**
76
+ * Creates an abort controller that extends the responseStream's abort signal
77
+ *
78
+ * @param responseStream
79
+ */
80
+ function getAbortController(responseStream) {
81
+ const abortController = new AbortController();
82
+ if (responseStream == null || responseStream.getAbortSignal == null)
83
+ return abortController;
84
+ const responseStreamAbortController = responseStream.getAbortSignal();
85
+ responseStreamAbortController.addEventListener("abort", () => abortController.abort(responseStreamAbortController.reason));
86
+ return abortController;
87
+ }
88
+ exports.getAbortController = getAbortController;
@@ -47,15 +47,21 @@ export interface IBitcoinWallet {
47
47
  getWalletTransactions(startHeight?: number): Promise<BtcTx[]>;
48
48
  getWalletTransaction(txId: string): Promise<BtcTx | null>;
49
49
  subscribeToWalletTransactions(callback: (tx: BtcTx) => void, abortSignal?: AbortSignal): void;
50
+ fundPsbt(psbt: Transaction, feeRate?: number): Promise<Transaction>;
50
51
  signPsbt(psbt: Transaction): Promise<SignPsbtResponse>;
51
52
  sendRawTransaction(tx: string): Promise<void>;
52
53
  getSignedTransaction(destination: string, amount: number, feeRate?: number, nonce?: bigint, maxAllowedFeeRate?: number): Promise<SignPsbtResponse>;
54
+ getSignedMultiTransaction(destinations: {
55
+ address: string;
56
+ amount: number;
57
+ }[], feeRate?: number, nonce?: bigint, maxAllowedFeeRate?: number): Promise<SignPsbtResponse>;
53
58
  estimateFee(destination: string, amount: number, feeRate?: number, feeRateMultiplier?: number): Promise<{
54
59
  satsPerVbyte: number;
55
60
  networkFee: number;
56
61
  }>;
57
62
  drainAll(destination: string | Buffer, inputs: Omit<BitcoinUtxo, "address">[], feeRate?: number): Promise<SignPsbtResponse>;
58
63
  burnAll(inputs: Omit<BitcoinUtxo, "address">[]): Promise<SignPsbtResponse>;
64
+ parsePsbt(psbt: Transaction): Promise<BtcTx>;
59
65
  getBlockheight(): Promise<number>;
60
66
  getFeeRate(): Promise<number>;
61
67
  }
@@ -0,0 +1,7 @@
1
+ import { Transaction } from "@scure/btc-signer";
2
+ export interface ISpvVaultSigner {
3
+ init(): Promise<void>;
4
+ getAddressType(): "p2wpkh" | "p2tr";
5
+ getAddress(chainId: string, vaultId: bigint): Promise<string>;
6
+ signPsbt(chainId: string, vaultId: bigint, psbt: Transaction, inputs: number[]): Promise<Transaction>;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,42 @@
1
+ /// <reference types="node" />
2
+ import { Command } from "@atomiqlabs/server-base";
3
+ import { Transaction } from "@scure/btc-signer";
4
+ export type BitcoinUtxo = {
5
+ address: string;
6
+ type: "p2wpkh" | "p2sh-p2wpkh" | "p2tr";
7
+ confirmations: number;
8
+ outputScript: Buffer;
9
+ value: number;
10
+ txId: string;
11
+ vout: number;
12
+ };
13
+ export type SignPsbtResponse = {
14
+ psbt: Transaction;
15
+ tx: Transaction;
16
+ raw: string;
17
+ txId: string;
18
+ networkFee: number;
19
+ };
20
+ export interface ISpvVaultSigner {
21
+ init(): Promise<void>;
22
+ isReady(): boolean;
23
+ getStatus(): string;
24
+ getStatusInfo(): Promise<Record<string, string>>;
25
+ getCommands(): Command<any>[];
26
+ getAddressType(): "p2wpkh" | "p2sh-p2wpkh" | "p2tr";
27
+ /**
28
+ * Returns an unused address suitable for receiving
29
+ */
30
+ getAddress(vaultId: bigint): Promise<string>;
31
+ signPsbt(vaultId: bigint, psbt: Transaction): Promise<SignPsbtResponse>;
32
+ sendRawTransaction(tx: string): Promise<void>;
33
+ getSignedTransaction(destination: string, amount: number, feeRate?: number, nonce?: bigint, maxAllowedFeeRate?: number): Promise<SignPsbtResponse>;
34
+ estimateFee(destination: string, amount: number, feeRate?: number, feeRateMultiplier?: number): Promise<{
35
+ satsPerVbyte: number;
36
+ networkFee: number;
37
+ }>;
38
+ drainAll(destination: string | Buffer, inputs: Omit<BitcoinUtxo, "address">[], feeRate?: number): Promise<SignPsbtResponse>;
39
+ burnAll(inputs: Omit<BitcoinUtxo, "address">[]): Promise<SignPsbtResponse>;
40
+ getBlockheight(): Promise<number>;
41
+ getFeeRate(): Promise<number>;
42
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomiqlabs/lp-lib",
3
- "version": "12.1.0",
3
+ "version": "13.0.0-beta.1",
4
4
  "description": "Main functionality implementation for atomiq LP node",
5
5
  "main": "./dist/index.js",
6
6
  "types:": "./dist/index.d.ts",
@@ -22,7 +22,7 @@
22
22
  "author": "adambor",
23
23
  "license": "ISC",
24
24
  "dependencies": {
25
- "@atomiqlabs/base": "^8.0.0",
25
+ "@atomiqlabs/base": "^9.0.0-beta.1",
26
26
  "@atomiqlabs/server-base": "2.0.0",
27
27
  "@scure/btc-signer": "1.6.0",
28
28
  "express": "4.21.1",
package/src/index.ts CHANGED
@@ -9,21 +9,21 @@ export * from "./storage/IIntermediaryStorage";
9
9
  export * from "./storagemanager/StorageManager";
10
10
  export * from "./storagemanager/IntermediaryStorageManager";
11
11
 
12
- export * from "./swaps/frombtc_abstract/FromBtcAbs";
13
- export * from "./swaps/frombtc_abstract/FromBtcSwapAbs";
14
- export * from "./swaps/frombtcln_abstract/FromBtcLnAbs";
15
- export * from "./swaps/frombtcln_abstract/FromBtcLnSwapAbs";
16
- export * from "./swaps/tobtc_abstract/ToBtcAbs";
17
- export * from "./swaps/tobtc_abstract/ToBtcSwapAbs";
18
- export * from "./swaps/tobtcln_abstract/ToBtcLnAbs";
19
- export * from "./swaps/tobtcln_abstract/ToBtcLnSwapAbs";
20
-
21
- export * from "./swaps/frombtc_trusted/FromBtcTrusted";
22
- export * from "./swaps/frombtc_trusted/FromBtcTrustedSwap";
23
- export * from "./swaps/frombtcln_trusted/FromBtcLnTrusted";
24
- export * from "./swaps/frombtcln_trusted/FromBtcLnTrustedSwap";
25
-
26
- export * from "./swaps/ISwapPrice";
12
+ export * from "./swaps/escrow/frombtc_abstract/FromBtcAbs";
13
+ export * from "./swaps/escrow/frombtc_abstract/FromBtcSwapAbs";
14
+ export * from "./swaps/escrow/frombtcln_abstract/FromBtcLnAbs";
15
+ export * from "./swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs";
16
+ export * from "./swaps/escrow/tobtc_abstract/ToBtcAbs";
17
+ export * from "./swaps/escrow/tobtc_abstract/ToBtcSwapAbs";
18
+ export * from "./swaps/escrow/tobtcln_abstract/ToBtcLnAbs";
19
+ export * from "./swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs";
20
+
21
+ export * from "./swaps/trusted/frombtc_trusted/FromBtcTrusted";
22
+ export * from "./swaps/trusted/frombtc_trusted/FromBtcTrustedSwap";
23
+ export * from "./swaps/trusted/frombtcln_trusted/FromBtcLnTrusted";
24
+ export * from "./swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap";
25
+
26
+ export * from "./prices/ISwapPrice";
27
27
  export * from "./swaps/SwapHandler";
28
28
  export * from "./swaps/SwapHandlerSwap";
29
29
 
@@ -43,3 +43,9 @@ export * from "./utils/paramcoders/server/ServerParamEncoder";
43
43
 
44
44
  export * from "./wallets/IBitcoinWallet";
45
45
  export * from "./wallets/ILightningWallet";
46
+ export * from "./wallets/ISpvVaultSigner";
47
+
48
+ export * from "./swaps/spv_vault_swap/SpvVaults";
49
+ export * from "./swaps/spv_vault_swap/SpvVault";
50
+ export * from "./swaps/spv_vault_swap/SpvVaultSwap";
51
+ export * from "./swaps/spv_vault_swap/SpvVaultSwapHandler";