@atomiqlabs/lp-lib 15.0.13 → 15.0.14

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 (163) hide show
  1. package/LICENSE +201 -201
  2. package/dist/fees/IBtcFeeEstimator.d.ts +3 -3
  3. package/dist/fees/IBtcFeeEstimator.js +2 -2
  4. package/dist/index.d.ts +40 -40
  5. package/dist/index.js +56 -56
  6. package/dist/info/InfoHandler.d.ts +17 -17
  7. package/dist/info/InfoHandler.js +58 -61
  8. package/dist/plugins/IPlugin.d.ts +144 -144
  9. package/dist/plugins/IPlugin.js +34 -34
  10. package/dist/plugins/PluginManager.d.ts +113 -113
  11. package/dist/plugins/PluginManager.js +274 -274
  12. package/dist/prices/BinanceSwapPrice.d.ts +26 -26
  13. package/dist/prices/BinanceSwapPrice.js +92 -92
  14. package/dist/prices/CoinGeckoSwapPrice.d.ts +30 -30
  15. package/dist/prices/CoinGeckoSwapPrice.js +64 -64
  16. package/dist/prices/ISwapPrice.d.ts +43 -43
  17. package/dist/prices/ISwapPrice.js +55 -55
  18. package/dist/prices/OKXSwapPrice.d.ts +26 -26
  19. package/dist/prices/OKXSwapPrice.js +92 -92
  20. package/dist/storage/IIntermediaryStorage.d.ts +18 -18
  21. package/dist/storage/IIntermediaryStorage.js +2 -2
  22. package/dist/storagemanager/IntermediaryStorageManager.d.ts +18 -18
  23. package/dist/storagemanager/IntermediaryStorageManager.js +104 -104
  24. package/dist/storagemanager/StorageManager.d.ts +12 -12
  25. package/dist/storagemanager/StorageManager.js +57 -57
  26. package/dist/swaps/SwapHandler.d.ts +153 -156
  27. package/dist/swaps/SwapHandler.js +157 -163
  28. package/dist/swaps/SwapHandlerSwap.d.ts +79 -79
  29. package/dist/swaps/SwapHandlerSwap.js +78 -78
  30. package/dist/swaps/assertions/AmountAssertions.d.ts +28 -28
  31. package/dist/swaps/assertions/AmountAssertions.js +74 -74
  32. package/dist/swaps/assertions/FromBtcAmountAssertions.d.ts +76 -76
  33. package/dist/swaps/assertions/FromBtcAmountAssertions.js +172 -172
  34. package/dist/swaps/assertions/LightningAssertions.d.ts +44 -44
  35. package/dist/swaps/assertions/LightningAssertions.js +86 -86
  36. package/dist/swaps/assertions/ToBtcAmountAssertions.d.ts +53 -53
  37. package/dist/swaps/assertions/ToBtcAmountAssertions.js +150 -150
  38. package/dist/swaps/escrow/EscrowHandler.d.ts +51 -51
  39. package/dist/swaps/escrow/EscrowHandler.js +158 -158
  40. package/dist/swaps/escrow/EscrowHandlerSwap.d.ts +35 -35
  41. package/dist/swaps/escrow/EscrowHandlerSwap.js +69 -69
  42. package/dist/swaps/escrow/FromBtcBaseSwap.d.ts +14 -14
  43. package/dist/swaps/escrow/FromBtcBaseSwap.js +32 -32
  44. package/dist/swaps/escrow/FromBtcBaseSwapHandler.d.ts +101 -101
  45. package/dist/swaps/escrow/FromBtcBaseSwapHandler.js +207 -207
  46. package/dist/swaps/escrow/ToBtcBaseSwap.d.ts +36 -36
  47. package/dist/swaps/escrow/ToBtcBaseSwap.js +67 -67
  48. package/dist/swaps/escrow/ToBtcBaseSwapHandler.d.ts +53 -53
  49. package/dist/swaps/escrow/ToBtcBaseSwapHandler.js +81 -81
  50. package/dist/swaps/escrow/frombtc_abstract/FromBtcAbs.d.ts +83 -83
  51. package/dist/swaps/escrow/frombtc_abstract/FromBtcAbs.js +318 -318
  52. package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.d.ts +21 -21
  53. package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.js +50 -50
  54. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.d.ts +107 -107
  55. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.js +673 -675
  56. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.d.ts +32 -32
  57. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.js +88 -88
  58. package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.d.ts +171 -171
  59. package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.js +718 -718
  60. package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.d.ts +28 -28
  61. package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.js +64 -64
  62. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.d.ts +177 -177
  63. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.js +863 -863
  64. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.d.ts +24 -24
  65. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.js +58 -58
  66. package/dist/swaps/spv_vault_swap/SpvVault.d.ts +45 -45
  67. package/dist/swaps/spv_vault_swap/SpvVault.js +145 -145
  68. package/dist/swaps/spv_vault_swap/SpvVaultSwap.d.ts +68 -68
  69. package/dist/swaps/spv_vault_swap/SpvVaultSwap.js +158 -158
  70. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.d.ts +68 -68
  71. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.js +528 -528
  72. package/dist/swaps/spv_vault_swap/SpvVaults.d.ts +68 -68
  73. package/dist/swaps/spv_vault_swap/SpvVaults.js +454 -454
  74. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.d.ts +51 -51
  75. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.js +650 -650
  76. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.d.ts +52 -52
  77. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.js +118 -118
  78. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.d.ts +76 -76
  79. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.js +493 -495
  80. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.d.ts +34 -34
  81. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.js +81 -81
  82. package/dist/utils/BitcoinUtils.d.ts +4 -4
  83. package/dist/utils/BitcoinUtils.js +61 -61
  84. package/dist/utils/Utils.d.ts +29 -29
  85. package/dist/utils/Utils.js +88 -88
  86. package/dist/utils/paramcoders/IParamReader.d.ts +5 -5
  87. package/dist/utils/paramcoders/IParamReader.js +2 -2
  88. package/dist/utils/paramcoders/IParamWriter.d.ts +4 -4
  89. package/dist/utils/paramcoders/IParamWriter.js +2 -2
  90. package/dist/utils/paramcoders/LegacyParamEncoder.d.ts +10 -10
  91. package/dist/utils/paramcoders/LegacyParamEncoder.js +22 -22
  92. package/dist/utils/paramcoders/ParamDecoder.d.ts +25 -25
  93. package/dist/utils/paramcoders/ParamDecoder.js +222 -222
  94. package/dist/utils/paramcoders/ParamEncoder.d.ts +9 -9
  95. package/dist/utils/paramcoders/ParamEncoder.js +22 -22
  96. package/dist/utils/paramcoders/SchemaVerifier.d.ts +21 -21
  97. package/dist/utils/paramcoders/SchemaVerifier.js +84 -84
  98. package/dist/utils/paramcoders/server/ServerParamDecoder.d.ts +8 -8
  99. package/dist/utils/paramcoders/server/ServerParamDecoder.js +105 -105
  100. package/dist/utils/paramcoders/server/ServerParamEncoder.d.ts +11 -11
  101. package/dist/utils/paramcoders/server/ServerParamEncoder.js +65 -65
  102. package/dist/wallets/IBitcoinWallet.d.ts +67 -67
  103. package/dist/wallets/IBitcoinWallet.js +2 -2
  104. package/dist/wallets/ILightningWallet.d.ts +117 -117
  105. package/dist/wallets/ILightningWallet.js +37 -37
  106. package/dist/wallets/ISpvVaultSigner.d.ts +7 -7
  107. package/dist/wallets/ISpvVaultSigner.js +2 -2
  108. package/dist/wallets/ISpvVaultWallet.d.ts +42 -42
  109. package/dist/wallets/ISpvVaultWallet.js +2 -2
  110. package/package.json +36 -36
  111. package/src/fees/IBtcFeeEstimator.ts +6 -6
  112. package/src/index.ts +51 -51
  113. package/src/info/InfoHandler.ts +100 -106
  114. package/src/plugins/IPlugin.ts +174 -174
  115. package/src/plugins/PluginManager.ts +354 -354
  116. package/src/prices/BinanceSwapPrice.ts +113 -113
  117. package/src/prices/CoinGeckoSwapPrice.ts +87 -87
  118. package/src/prices/ISwapPrice.ts +88 -88
  119. package/src/prices/OKXSwapPrice.ts +113 -113
  120. package/src/storage/IIntermediaryStorage.ts +19 -19
  121. package/src/storagemanager/IntermediaryStorageManager.ts +109 -109
  122. package/src/storagemanager/StorageManager.ts +68 -68
  123. package/src/swaps/SwapHandler.ts +272 -280
  124. package/src/swaps/SwapHandlerSwap.ts +141 -141
  125. package/src/swaps/assertions/AmountAssertions.ts +77 -77
  126. package/src/swaps/assertions/FromBtcAmountAssertions.ts +238 -238
  127. package/src/swaps/assertions/LightningAssertions.ts +103 -103
  128. package/src/swaps/assertions/ToBtcAmountAssertions.ts +203 -203
  129. package/src/swaps/escrow/EscrowHandler.ts +179 -179
  130. package/src/swaps/escrow/EscrowHandlerSwap.ts +86 -86
  131. package/src/swaps/escrow/FromBtcBaseSwap.ts +38 -38
  132. package/src/swaps/escrow/FromBtcBaseSwapHandler.ts +283 -283
  133. package/src/swaps/escrow/ToBtcBaseSwap.ts +85 -85
  134. package/src/swaps/escrow/ToBtcBaseSwapHandler.ts +129 -129
  135. package/src/swaps/escrow/frombtc_abstract/FromBtcAbs.ts +452 -452
  136. package/src/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.ts +61 -61
  137. package/src/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.ts +855 -856
  138. package/src/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.ts +137 -137
  139. package/src/swaps/escrow/tobtc_abstract/ToBtcAbs.ts +890 -890
  140. package/src/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.ts +108 -108
  141. package/src/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.ts +1112 -1112
  142. package/src/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.ts +80 -80
  143. package/src/swaps/spv_vault_swap/SpvVault.ts +178 -178
  144. package/src/swaps/spv_vault_swap/SpvVaultSwap.ts +228 -228
  145. package/src/swaps/spv_vault_swap/SpvVaultSwapHandler.ts +671 -671
  146. package/src/swaps/spv_vault_swap/SpvVaults.ts +526 -526
  147. package/src/swaps/trusted/frombtc_trusted/FromBtcTrusted.ts +747 -747
  148. package/src/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.ts +185 -185
  149. package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.ts +591 -592
  150. package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.ts +121 -121
  151. package/src/utils/BitcoinUtils.ts +59 -59
  152. package/src/utils/Utils.ts +102 -102
  153. package/src/utils/paramcoders/IParamReader.ts +7 -7
  154. package/src/utils/paramcoders/IParamWriter.ts +8 -8
  155. package/src/utils/paramcoders/LegacyParamEncoder.ts +27 -27
  156. package/src/utils/paramcoders/ParamDecoder.ts +218 -218
  157. package/src/utils/paramcoders/ParamEncoder.ts +29 -29
  158. package/src/utils/paramcoders/SchemaVerifier.ts +96 -96
  159. package/src/utils/paramcoders/server/ServerParamDecoder.ts +115 -115
  160. package/src/utils/paramcoders/server/ServerParamEncoder.ts +75 -75
  161. package/src/wallets/IBitcoinWallet.ts +68 -68
  162. package/src/wallets/ILightningWallet.ts +178 -178
  163. package/src/wallets/ISpvVaultSigner.ts +10 -10
@@ -1,17 +1,17 @@
1
- import { Express } from "express";
2
- import { MultichainData, SwapHandler } from "../swaps/SwapHandler";
3
- /**
4
- * Handles info requests to POST /info returning information about fees, swap params, etc.
5
- */
6
- export declare class InfoHandler {
7
- readonly chainData: MultichainData;
8
- readonly path: string;
9
- readonly swapHandlers: SwapHandler[];
10
- constructor(chainData: MultichainData, path: string, swapHandlers: SwapHandler[]);
11
- /**
12
- * Adds a listener to POST /info
13
- *
14
- * @param restServer
15
- */
16
- startRestServer(restServer: Express): void;
17
- }
1
+ import { Express } from "express";
2
+ import { MultichainData, SwapHandler } from "../swaps/SwapHandler";
3
+ /**
4
+ * Handles info requests to POST /info returning information about fees, swap params, etc.
5
+ */
6
+ export declare class InfoHandler {
7
+ readonly chainData: MultichainData;
8
+ readonly path: string;
9
+ readonly swapHandlers: SwapHandler[];
10
+ constructor(chainData: MultichainData, path: string, swapHandlers: SwapHandler[]);
11
+ /**
12
+ * Adds a listener to POST /info
13
+ *
14
+ * @param restServer
15
+ */
16
+ startRestServer(restServer: Express): void;
17
+ }
@@ -1,61 +1,58 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InfoHandler = void 0;
4
- const express = require("express");
5
- const HEX_REGEX = /[0-9a-f]+/i;
6
- /**
7
- * Handles info requests to POST /info returning information about fees, swap params, etc.
8
- */
9
- class InfoHandler {
10
- constructor(chainData, path, swapHandlers) {
11
- this.chainData = chainData;
12
- this.path = path;
13
- this.swapHandlers = swapHandlers;
14
- }
15
- /**
16
- * Adds a listener to POST /info
17
- *
18
- * @param restServer
19
- */
20
- startRestServer(restServer) {
21
- restServer.use(this.path + "/info", express.json());
22
- restServer.post(this.path + "/info", async (req, res) => {
23
- if (req.body == null ||
24
- req.body.nonce == null ||
25
- typeof (req.body.nonce) !== "string" ||
26
- req.body.nonce.length > 64 ||
27
- !HEX_REGEX.test(req.body.nonce)) {
28
- res.status(400).json({
29
- msg: "Invalid request body (nonce)"
30
- });
31
- return;
32
- }
33
- const env = {
34
- nonce: req.body.nonce,
35
- services: {}
36
- };
37
- for (let swapHandler of this.swapHandlers) {
38
- env.services[swapHandler.type] = swapHandler.getInfo();
39
- }
40
- const envelope = JSON.stringify(env);
41
- const envelopeBuffer = Buffer.from(envelope);
42
- const chains = {};
43
- for (let chainIdentifier in this.chainData.chains) {
44
- const singleChain = this.chainData.chains[chainIdentifier];
45
- chains[chainIdentifier] = {
46
- address: singleChain.signer.getAddress(),
47
- signature: await singleChain.swapContract.getDataSignature(singleChain.signer, envelopeBuffer)
48
- };
49
- }
50
- const defaults = chains[this.chainData.default];
51
- const response = {
52
- envelope,
53
- address: defaults.address,
54
- signature: defaults.signature,
55
- chains
56
- };
57
- res.status(200).json(response);
58
- });
59
- }
60
- }
61
- exports.InfoHandler = InfoHandler;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfoHandler = void 0;
4
+ const express = require("express");
5
+ const HEX_REGEX = /[0-9a-f]+/i;
6
+ /**
7
+ * Handles info requests to POST /info returning information about fees, swap params, etc.
8
+ */
9
+ class InfoHandler {
10
+ constructor(chainData, path, swapHandlers) {
11
+ this.chainData = chainData;
12
+ this.path = path;
13
+ this.swapHandlers = swapHandlers;
14
+ }
15
+ /**
16
+ * Adds a listener to POST /info
17
+ *
18
+ * @param restServer
19
+ */
20
+ startRestServer(restServer) {
21
+ restServer.use(this.path + "/info", express.json());
22
+ restServer.post(this.path + "/info", async (req, res) => {
23
+ if (req.body == null ||
24
+ req.body.nonce == null ||
25
+ typeof (req.body.nonce) !== "string" ||
26
+ req.body.nonce.length > 64 ||
27
+ !HEX_REGEX.test(req.body.nonce)) {
28
+ res.status(400).json({
29
+ msg: "Invalid request body (nonce)"
30
+ });
31
+ return;
32
+ }
33
+ const env = {
34
+ nonce: req.body.nonce,
35
+ services: {}
36
+ };
37
+ for (let swapHandler of this.swapHandlers) {
38
+ env.services[swapHandler.type] = swapHandler.getInfo();
39
+ }
40
+ const envelope = JSON.stringify(env);
41
+ const envelopeBuffer = Buffer.from(envelope);
42
+ const chains = {};
43
+ for (let chainIdentifier in this.chainData.chains) {
44
+ const singleChain = this.chainData.chains[chainIdentifier];
45
+ chains[chainIdentifier] = {
46
+ address: singleChain.signer.getAddress(),
47
+ signature: await singleChain.swapContract.getDataSignature(singleChain.signer, envelopeBuffer)
48
+ };
49
+ }
50
+ const response = {
51
+ envelope,
52
+ chains
53
+ };
54
+ res.status(200).json(response);
55
+ });
56
+ }
57
+ }
58
+ exports.InfoHandler = InfoHandler;
@@ -1,144 +1,144 @@
1
- import { BitcoinRpc } from "@atomiqlabs/base";
2
- import { FromBtcLnRequestType, FromBtcRequestType, FromBtcTrustedRequestType, ISwapPrice, MultichainData, RequestData, SpvVaultPostQuote, SpvVaultSwap, SpvVaultSwapRequestType, SwapHandler, SwapHandlerType, ToBtcLnRequestType, ToBtcRequestType } from "..";
3
- import { SwapHandlerSwap } from "../swaps/SwapHandlerSwap";
4
- import { Command } from "@atomiqlabs/server-base";
5
- import { FromBtcLnTrustedRequestType } from "../swaps/trusted/frombtcln_trusted/FromBtcLnTrusted";
6
- import { IBitcoinWallet } from "../wallets/IBitcoinWallet";
7
- import { ILightningWallet } from "../wallets/ILightningWallet";
8
- import { SpvVault } from "../swaps/spv_vault_swap/SpvVault";
9
- export type QuoteThrow = {
10
- type: "throw";
11
- message: string;
12
- };
13
- export declare function isQuoteThrow(obj: any): obj is QuoteThrow;
14
- export type QuoteSetFees = {
15
- type: "fees";
16
- baseFee?: bigint;
17
- feePPM?: bigint;
18
- securityDepositApyPPM?: bigint;
19
- securityDepositBaseMultiplierPPM?: bigint;
20
- };
21
- export declare function isQuoteSetFees(obj: any): obj is QuoteSetFees;
22
- export type QuoteAmountTooLow = {
23
- type: "low";
24
- data: {
25
- min: bigint;
26
- max: bigint;
27
- };
28
- };
29
- export declare function isQuoteAmountTooLow(obj: any): obj is QuoteAmountTooLow;
30
- export type QuoteAmountTooHigh = {
31
- type: "high";
32
- data: {
33
- min: bigint;
34
- max: bigint;
35
- };
36
- };
37
- export declare function isQuoteAmountTooHigh(obj: any): obj is QuoteAmountTooHigh;
38
- export type PluginQuote = {
39
- type: "success";
40
- amount: {
41
- input: boolean;
42
- amount: bigint;
43
- };
44
- swapFee: {
45
- inInputTokens: bigint;
46
- inOutputTokens: bigint;
47
- };
48
- };
49
- export declare function isPluginQuote(obj: any): obj is PluginQuote;
50
- export type ToBtcPluginQuote = PluginQuote & {
51
- networkFee: {
52
- inInputTokens: bigint;
53
- inOutputTokens: bigint;
54
- };
55
- };
56
- export declare function isToBtcPluginQuote(obj: any): obj is ToBtcPluginQuote;
57
- export interface IPlugin {
58
- name: string;
59
- author: string;
60
- description: string;
61
- onEnable(chainsData: MultichainData, bitcoinRpc: BitcoinRpc<any>, bitcoinWallet: IBitcoinWallet, lightningWallet: ILightningWallet, swapPricing: ISwapPrice, tokens: {
62
- [ticker: string]: {
63
- [chainId: string]: {
64
- address: string;
65
- decimals: number;
66
- };
67
- };
68
- }, directory: string): Promise<void>;
69
- onDisable(): Promise<void>;
70
- onServiceInitialize(service: SwapHandler<any>): Promise<void>;
71
- onHttpServerStarted?(expressServer: any): Promise<void>;
72
- onSwapStateChange?(swap: SwapHandlerSwap): Promise<void>;
73
- onSwapCreate?(swap: SwapHandlerSwap): Promise<void>;
74
- onSwapRemove?(swap: SwapHandlerSwap): Promise<void>;
75
- onHandlePreFromBtcQuote?(swapType: SwapHandlerType.FROM_BTCLN | SwapHandlerType.FROM_BTC | SwapHandlerType.FROM_BTCLN_TRUSTED | SwapHandlerType.FROM_BTC_TRUSTED | SwapHandlerType.FROM_BTC_SPV, request: RequestData<FromBtcLnRequestType | FromBtcRequestType | FromBtcLnTrustedRequestType | FromBtcTrustedRequestType | SpvVaultSwapRequestType>, requestedAmount: {
76
- input: boolean;
77
- amount: bigint;
78
- token: string;
79
- }, chainIdentifier: string, constraints: {
80
- minInBtc: bigint;
81
- maxInBtc: bigint;
82
- }, fees: {
83
- baseFeeInBtc: bigint;
84
- feePPM: bigint;
85
- }, gasTokenAmount?: {
86
- input: false;
87
- amount: bigint;
88
- token: string;
89
- }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh>;
90
- onHandlePostFromBtcQuote?(swapType: SwapHandlerType.FROM_BTCLN | SwapHandlerType.FROM_BTC | SwapHandlerType.FROM_BTCLN_TRUSTED | SwapHandlerType.FROM_BTC_TRUSTED | SwapHandlerType.FROM_BTC_SPV, request: RequestData<FromBtcLnRequestType | FromBtcRequestType | FromBtcLnTrustedRequestType | FromBtcTrustedRequestType | SpvVaultSwapRequestType>, requestedAmount: {
91
- input: boolean;
92
- amount: bigint;
93
- token: string;
94
- pricePrefetch?: Promise<bigint>;
95
- }, chainIdentifier: string, constraints: {
96
- minInBtc: bigint;
97
- maxInBtc: bigint;
98
- }, fees: {
99
- baseFeeInBtc: bigint;
100
- feePPM: bigint;
101
- }, gasTokenAmount?: {
102
- input: false;
103
- amount: bigint;
104
- token: string;
105
- pricePrefetch?: Promise<bigint>;
106
- }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh | PluginQuote>;
107
- onHandlePreToBtcQuote?(swapType: SwapHandlerType.TO_BTCLN | SwapHandlerType.TO_BTC, request: RequestData<ToBtcLnRequestType | ToBtcRequestType>, requestedAmount: {
108
- input: boolean;
109
- amount: bigint;
110
- token: string;
111
- }, chainIdentifier: string, constraints: {
112
- minInBtc: bigint;
113
- maxInBtc: bigint;
114
- }, fees: {
115
- baseFeeInBtc: bigint;
116
- feePPM: bigint;
117
- }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh>;
118
- onHandlePostToBtcQuote?(swapType: SwapHandlerType.TO_BTCLN | SwapHandlerType.TO_BTC, request: RequestData<ToBtcLnRequestType | ToBtcRequestType>, requestedAmount: {
119
- input: boolean;
120
- amount: bigint;
121
- token: string;
122
- pricePrefetch?: Promise<bigint>;
123
- }, chainIdentifier: string, constraints: {
124
- minInBtc: bigint;
125
- maxInBtc: bigint;
126
- }, fees: {
127
- baseFeeInBtc: bigint;
128
- feePPM: bigint;
129
- networkFeeGetter: (amount: bigint) => Promise<bigint>;
130
- }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh | ToBtcPluginQuote>;
131
- onHandlePostedFromBtcQuote?(swapType: SwapHandlerType.FROM_BTC_SPV, request: RequestData<SpvVaultPostQuote>, swap: SpvVaultSwap): Promise<QuoteThrow | null>;
132
- onVaultSelection?(chainIdentifier: string, totalSats: bigint, requestedAmount: {
133
- amount: bigint;
134
- token: string;
135
- }, gasAmount: {
136
- amount: bigint;
137
- token: string;
138
- }): Promise<SpvVault | QuoteThrow | QuoteAmountTooHigh | QuoteAmountTooLow | null>;
139
- /**
140
- * Returns whitelisted bitcoin txIds that are OK to spend even with 0-confs
141
- */
142
- getWhitelistedTxIds?(): string[];
143
- getCommands?(): Command<any>[];
144
- }
1
+ import { BitcoinRpc } from "@atomiqlabs/base";
2
+ import { FromBtcLnRequestType, FromBtcRequestType, FromBtcTrustedRequestType, ISwapPrice, MultichainData, RequestData, SpvVaultPostQuote, SpvVaultSwap, SpvVaultSwapRequestType, SwapHandler, SwapHandlerType, ToBtcLnRequestType, ToBtcRequestType } from "..";
3
+ import { SwapHandlerSwap } from "../swaps/SwapHandlerSwap";
4
+ import { Command } from "@atomiqlabs/server-base";
5
+ import { FromBtcLnTrustedRequestType } from "../swaps/trusted/frombtcln_trusted/FromBtcLnTrusted";
6
+ import { IBitcoinWallet } from "../wallets/IBitcoinWallet";
7
+ import { ILightningWallet } from "../wallets/ILightningWallet";
8
+ import { SpvVault } from "../swaps/spv_vault_swap/SpvVault";
9
+ export type QuoteThrow = {
10
+ type: "throw";
11
+ message: string;
12
+ };
13
+ export declare function isQuoteThrow(obj: any): obj is QuoteThrow;
14
+ export type QuoteSetFees = {
15
+ type: "fees";
16
+ baseFee?: bigint;
17
+ feePPM?: bigint;
18
+ securityDepositApyPPM?: bigint;
19
+ securityDepositBaseMultiplierPPM?: bigint;
20
+ };
21
+ export declare function isQuoteSetFees(obj: any): obj is QuoteSetFees;
22
+ export type QuoteAmountTooLow = {
23
+ type: "low";
24
+ data: {
25
+ min: bigint;
26
+ max: bigint;
27
+ };
28
+ };
29
+ export declare function isQuoteAmountTooLow(obj: any): obj is QuoteAmountTooLow;
30
+ export type QuoteAmountTooHigh = {
31
+ type: "high";
32
+ data: {
33
+ min: bigint;
34
+ max: bigint;
35
+ };
36
+ };
37
+ export declare function isQuoteAmountTooHigh(obj: any): obj is QuoteAmountTooHigh;
38
+ export type PluginQuote = {
39
+ type: "success";
40
+ amount: {
41
+ input: boolean;
42
+ amount: bigint;
43
+ };
44
+ swapFee: {
45
+ inInputTokens: bigint;
46
+ inOutputTokens: bigint;
47
+ };
48
+ };
49
+ export declare function isPluginQuote(obj: any): obj is PluginQuote;
50
+ export type ToBtcPluginQuote = PluginQuote & {
51
+ networkFee: {
52
+ inInputTokens: bigint;
53
+ inOutputTokens: bigint;
54
+ };
55
+ };
56
+ export declare function isToBtcPluginQuote(obj: any): obj is ToBtcPluginQuote;
57
+ export interface IPlugin {
58
+ name: string;
59
+ author: string;
60
+ description: string;
61
+ onEnable(chainsData: MultichainData, bitcoinRpc: BitcoinRpc<any>, bitcoinWallet: IBitcoinWallet, lightningWallet: ILightningWallet, swapPricing: ISwapPrice, tokens: {
62
+ [ticker: string]: {
63
+ [chainId: string]: {
64
+ address: string;
65
+ decimals: number;
66
+ };
67
+ };
68
+ }, directory: string): Promise<void>;
69
+ onDisable(): Promise<void>;
70
+ onServiceInitialize(service: SwapHandler<any>): Promise<void>;
71
+ onHttpServerStarted?(expressServer: any): Promise<void>;
72
+ onSwapStateChange?(swap: SwapHandlerSwap): Promise<void>;
73
+ onSwapCreate?(swap: SwapHandlerSwap): Promise<void>;
74
+ onSwapRemove?(swap: SwapHandlerSwap): Promise<void>;
75
+ onHandlePreFromBtcQuote?(swapType: SwapHandlerType.FROM_BTCLN | SwapHandlerType.FROM_BTC | SwapHandlerType.FROM_BTCLN_TRUSTED | SwapHandlerType.FROM_BTC_TRUSTED | SwapHandlerType.FROM_BTC_SPV, request: RequestData<FromBtcLnRequestType | FromBtcRequestType | FromBtcLnTrustedRequestType | FromBtcTrustedRequestType | SpvVaultSwapRequestType>, requestedAmount: {
76
+ input: boolean;
77
+ amount: bigint;
78
+ token: string;
79
+ }, chainIdentifier: string, constraints: {
80
+ minInBtc: bigint;
81
+ maxInBtc: bigint;
82
+ }, fees: {
83
+ baseFeeInBtc: bigint;
84
+ feePPM: bigint;
85
+ }, gasTokenAmount?: {
86
+ input: false;
87
+ amount: bigint;
88
+ token: string;
89
+ }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh>;
90
+ onHandlePostFromBtcQuote?(swapType: SwapHandlerType.FROM_BTCLN | SwapHandlerType.FROM_BTC | SwapHandlerType.FROM_BTCLN_TRUSTED | SwapHandlerType.FROM_BTC_TRUSTED | SwapHandlerType.FROM_BTC_SPV, request: RequestData<FromBtcLnRequestType | FromBtcRequestType | FromBtcLnTrustedRequestType | FromBtcTrustedRequestType | SpvVaultSwapRequestType>, requestedAmount: {
91
+ input: boolean;
92
+ amount: bigint;
93
+ token: string;
94
+ pricePrefetch?: Promise<bigint>;
95
+ }, chainIdentifier: string, constraints: {
96
+ minInBtc: bigint;
97
+ maxInBtc: bigint;
98
+ }, fees: {
99
+ baseFeeInBtc: bigint;
100
+ feePPM: bigint;
101
+ }, gasTokenAmount?: {
102
+ input: false;
103
+ amount: bigint;
104
+ token: string;
105
+ pricePrefetch?: Promise<bigint>;
106
+ }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh | PluginQuote>;
107
+ onHandlePreToBtcQuote?(swapType: SwapHandlerType.TO_BTCLN | SwapHandlerType.TO_BTC, request: RequestData<ToBtcLnRequestType | ToBtcRequestType>, requestedAmount: {
108
+ input: boolean;
109
+ amount: bigint;
110
+ token: string;
111
+ }, chainIdentifier: string, constraints: {
112
+ minInBtc: bigint;
113
+ maxInBtc: bigint;
114
+ }, fees: {
115
+ baseFeeInBtc: bigint;
116
+ feePPM: bigint;
117
+ }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh>;
118
+ onHandlePostToBtcQuote?(swapType: SwapHandlerType.TO_BTCLN | SwapHandlerType.TO_BTC, request: RequestData<ToBtcLnRequestType | ToBtcRequestType>, requestedAmount: {
119
+ input: boolean;
120
+ amount: bigint;
121
+ token: string;
122
+ pricePrefetch?: Promise<bigint>;
123
+ }, chainIdentifier: string, constraints: {
124
+ minInBtc: bigint;
125
+ maxInBtc: bigint;
126
+ }, fees: {
127
+ baseFeeInBtc: bigint;
128
+ feePPM: bigint;
129
+ networkFeeGetter: (amount: bigint) => Promise<bigint>;
130
+ }): Promise<QuoteThrow | QuoteSetFees | QuoteAmountTooLow | QuoteAmountTooHigh | ToBtcPluginQuote>;
131
+ onHandlePostedFromBtcQuote?(swapType: SwapHandlerType.FROM_BTC_SPV, request: RequestData<SpvVaultPostQuote>, swap: SpvVaultSwap): Promise<QuoteThrow | null>;
132
+ onVaultSelection?(chainIdentifier: string, totalSats: bigint, requestedAmount: {
133
+ amount: bigint;
134
+ token: string;
135
+ }, gasAmount: {
136
+ amount: bigint;
137
+ token: string;
138
+ }): Promise<SpvVault | QuoteThrow | QuoteAmountTooHigh | QuoteAmountTooLow | null>;
139
+ /**
140
+ * Returns whitelisted bitcoin txIds that are OK to spend even with 0-confs
141
+ */
142
+ getWhitelistedTxIds?(): string[];
143
+ getCommands?(): Command<any>[];
144
+ }
@@ -1,34 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isToBtcPluginQuote = exports.isPluginQuote = exports.isQuoteAmountTooHigh = exports.isQuoteAmountTooLow = exports.isQuoteSetFees = exports.isQuoteThrow = void 0;
4
- function isQuoteThrow(obj) {
5
- return obj.type === "throw" && typeof (obj.message) === "string";
6
- }
7
- exports.isQuoteThrow = isQuoteThrow;
8
- function isQuoteSetFees(obj) {
9
- return obj.type === "fees" &&
10
- (obj.baseFee == null || typeof (obj.baseFee) === "bigint") &&
11
- (obj.feePPM == null || typeof (obj.feePPM) === "bigint") &&
12
- (obj.securityDepositApyPPM == null || typeof (obj.securityDepositApyPPM) === "bigint") &&
13
- (obj.securityDepositBaseMultiplierPPM == null || typeof (obj.securityDepositBaseMultiplierPPM) === "bigint");
14
- }
15
- exports.isQuoteSetFees = isQuoteSetFees;
16
- function isQuoteAmountTooLow(obj) {
17
- return obj.type === "low" && typeof (obj.data) === "object" && typeof (obj.data.min) === "bigint" && typeof (obj.data.max) === "bigint";
18
- }
19
- exports.isQuoteAmountTooLow = isQuoteAmountTooLow;
20
- function isQuoteAmountTooHigh(obj) {
21
- return obj.type === "high" && typeof (obj.data) === "object" && typeof (obj.data.min) === "bigint" && typeof (obj.data.max) === "bigint";
22
- }
23
- exports.isQuoteAmountTooHigh = isQuoteAmountTooHigh;
24
- function isPluginQuote(obj) {
25
- return obj.type === "success" &&
26
- typeof (obj.amount) === "object" && typeof (obj.amount.input) === "boolean" && typeof (obj.amount.amount) === "bigint" &&
27
- typeof (obj.swapFee) === "object" && typeof (obj.swapFee.inInputTokens) === "bigint" && typeof (obj.swapFee.inOutputTokens) === "bigint";
28
- }
29
- exports.isPluginQuote = isPluginQuote;
30
- function isToBtcPluginQuote(obj) {
31
- return typeof (obj.networkFee) === "object" && typeof (obj.networkFee.inInputTokens) === "bigint" && typeof (obj.networkFee.inOutputTokens) === "bigint" &&
32
- isPluginQuote(obj);
33
- }
34
- exports.isToBtcPluginQuote = isToBtcPluginQuote;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isToBtcPluginQuote = exports.isPluginQuote = exports.isQuoteAmountTooHigh = exports.isQuoteAmountTooLow = exports.isQuoteSetFees = exports.isQuoteThrow = void 0;
4
+ function isQuoteThrow(obj) {
5
+ return obj.type === "throw" && typeof (obj.message) === "string";
6
+ }
7
+ exports.isQuoteThrow = isQuoteThrow;
8
+ function isQuoteSetFees(obj) {
9
+ return obj.type === "fees" &&
10
+ (obj.baseFee == null || typeof (obj.baseFee) === "bigint") &&
11
+ (obj.feePPM == null || typeof (obj.feePPM) === "bigint") &&
12
+ (obj.securityDepositApyPPM == null || typeof (obj.securityDepositApyPPM) === "bigint") &&
13
+ (obj.securityDepositBaseMultiplierPPM == null || typeof (obj.securityDepositBaseMultiplierPPM) === "bigint");
14
+ }
15
+ exports.isQuoteSetFees = isQuoteSetFees;
16
+ function isQuoteAmountTooLow(obj) {
17
+ return obj.type === "low" && typeof (obj.data) === "object" && typeof (obj.data.min) === "bigint" && typeof (obj.data.max) === "bigint";
18
+ }
19
+ exports.isQuoteAmountTooLow = isQuoteAmountTooLow;
20
+ function isQuoteAmountTooHigh(obj) {
21
+ return obj.type === "high" && typeof (obj.data) === "object" && typeof (obj.data.min) === "bigint" && typeof (obj.data.max) === "bigint";
22
+ }
23
+ exports.isQuoteAmountTooHigh = isQuoteAmountTooHigh;
24
+ function isPluginQuote(obj) {
25
+ return obj.type === "success" &&
26
+ typeof (obj.amount) === "object" && typeof (obj.amount.input) === "boolean" && typeof (obj.amount.amount) === "bigint" &&
27
+ typeof (obj.swapFee) === "object" && typeof (obj.swapFee.inInputTokens) === "bigint" && typeof (obj.swapFee.inOutputTokens) === "bigint";
28
+ }
29
+ exports.isPluginQuote = isPluginQuote;
30
+ function isToBtcPluginQuote(obj) {
31
+ return typeof (obj.networkFee) === "object" && typeof (obj.networkFee.inInputTokens) === "bigint" && typeof (obj.networkFee.inOutputTokens) === "bigint" &&
32
+ isPluginQuote(obj);
33
+ }
34
+ exports.isToBtcPluginQuote = isToBtcPluginQuote;