@atomiqlabs/lp-lib 17.5.1 → 17.5.2

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 (170) 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 +43 -43
  5. package/dist/index.js +59 -59
  6. package/dist/info/InfoHandler.d.ts +17 -17
  7. package/dist/info/InfoHandler.js +61 -61
  8. package/dist/plugins/IPlugin.d.ts +158 -158
  9. package/dist/plugins/IPlugin.js +35 -35
  10. package/dist/plugins/PluginManager.d.ts +115 -115
  11. package/dist/plugins/PluginManager.js +304 -304
  12. package/dist/prices/BinanceSwapPrice.d.ts +29 -29
  13. package/dist/prices/BinanceSwapPrice.js +79 -79
  14. package/dist/prices/CoinGeckoSwapPrice.d.ts +33 -33
  15. package/dist/prices/CoinGeckoSwapPrice.js +51 -51
  16. package/dist/prices/ISwapPrice.d.ts +43 -43
  17. package/dist/prices/ISwapPrice.js +55 -55
  18. package/dist/prices/OKXSwapPrice.d.ts +29 -29
  19. package/dist/prices/OKXSwapPrice.js +79 -79
  20. package/dist/storage/IIntermediaryStorage.d.ts +18 -18
  21. package/dist/storage/IIntermediaryStorage.js +2 -2
  22. package/dist/storagemanager/IntermediaryStorageManager.d.ts +19 -19
  23. package/dist/storagemanager/IntermediaryStorageManager.js +111 -111
  24. package/dist/storagemanager/StorageManager.d.ts +13 -13
  25. package/dist/storagemanager/StorageManager.js +64 -64
  26. package/dist/swaps/SwapHandler.d.ts +178 -178
  27. package/dist/swaps/SwapHandler.js +225 -225
  28. package/dist/swaps/SwapHandlerSwap.d.ts +80 -80
  29. package/dist/swaps/SwapHandlerSwap.js +78 -78
  30. package/dist/swaps/assertions/AmountAssertions.d.ts +37 -37
  31. package/dist/swaps/assertions/AmountAssertions.js +83 -83
  32. package/dist/swaps/assertions/FromBtcAmountAssertions.d.ts +76 -76
  33. package/dist/swaps/assertions/FromBtcAmountAssertions.js +189 -189
  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 +154 -154
  38. package/dist/swaps/escrow/EscrowHandler.d.ts +50 -50
  39. package/dist/swaps/escrow/EscrowHandler.js +151 -151
  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 +102 -102
  45. package/dist/swaps/escrow/FromBtcBaseSwapHandler.js +210 -210
  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 +84 -84
  51. package/dist/swaps/escrow/frombtc_abstract/FromBtcAbs.js +329 -329
  52. package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.d.ts +22 -22
  53. package/dist/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.js +53 -53
  54. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.d.ts +115 -115
  55. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.js +719 -719
  56. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.d.ts +34 -34
  57. package/dist/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.js +94 -94
  58. package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.d.ts +119 -119
  59. package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.js +730 -730
  60. package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.d.ts +56 -56
  61. package/dist/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.js +123 -123
  62. package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.d.ts +170 -170
  63. package/dist/swaps/escrow/tobtc_abstract/ToBtcAbs.js +769 -769
  64. package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.d.ts +29 -29
  65. package/dist/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.js +67 -67
  66. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.d.ts +178 -178
  67. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.js +912 -912
  68. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.d.ts +25 -25
  69. package/dist/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.js +61 -61
  70. package/dist/swaps/spv_vault_swap/SpvVault.d.ts +45 -45
  71. package/dist/swaps/spv_vault_swap/SpvVault.js +148 -148
  72. package/dist/swaps/spv_vault_swap/SpvVaultSwap.d.ts +71 -71
  73. package/dist/swaps/spv_vault_swap/SpvVaultSwap.js +165 -165
  74. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.d.ts +72 -72
  75. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.js +710 -710
  76. package/dist/swaps/spv_vault_swap/SpvVaults.d.ts +70 -70
  77. package/dist/swaps/spv_vault_swap/SpvVaults.js +554 -554
  78. package/dist/swaps/spv_vault_swap/StickyAddress.d.ts +6 -6
  79. package/dist/swaps/spv_vault_swap/StickyAddress.js +19 -19
  80. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.d.ts +52 -52
  81. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrusted.js +677 -677
  82. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.d.ts +53 -53
  83. package/dist/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.js +121 -121
  84. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.d.ts +77 -77
  85. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.js +518 -518
  86. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.d.ts +35 -35
  87. package/dist/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.js +84 -84
  88. package/dist/utils/BitcoinUtils.d.ts +4 -4
  89. package/dist/utils/BitcoinUtils.js +61 -61
  90. package/dist/utils/Utils.d.ts +32 -32
  91. package/dist/utils/Utils.js +130 -130
  92. package/dist/utils/paramcoders/IParamReader.d.ts +5 -5
  93. package/dist/utils/paramcoders/IParamReader.js +2 -2
  94. package/dist/utils/paramcoders/IParamWriter.d.ts +4 -4
  95. package/dist/utils/paramcoders/IParamWriter.js +2 -2
  96. package/dist/utils/paramcoders/LegacyParamEncoder.d.ts +10 -10
  97. package/dist/utils/paramcoders/LegacyParamEncoder.js +22 -22
  98. package/dist/utils/paramcoders/ParamDecoder.d.ts +25 -25
  99. package/dist/utils/paramcoders/ParamDecoder.js +222 -222
  100. package/dist/utils/paramcoders/ParamEncoder.d.ts +9 -9
  101. package/dist/utils/paramcoders/ParamEncoder.js +22 -22
  102. package/dist/utils/paramcoders/SchemaVerifier.d.ts +21 -21
  103. package/dist/utils/paramcoders/SchemaVerifier.js +84 -84
  104. package/dist/utils/paramcoders/server/ServerParamDecoder.d.ts +8 -8
  105. package/dist/utils/paramcoders/server/ServerParamDecoder.js +107 -107
  106. package/dist/utils/paramcoders/server/ServerParamEncoder.d.ts +11 -11
  107. package/dist/utils/paramcoders/server/ServerParamEncoder.js +65 -65
  108. package/dist/wallets/IBitcoinWallet.d.ts +155 -155
  109. package/dist/wallets/IBitcoinWallet.js +100 -100
  110. package/dist/wallets/ILightningWallet.d.ts +137 -137
  111. package/dist/wallets/ILightningWallet.js +37 -37
  112. package/dist/wallets/ISpvVaultSigner.d.ts +7 -7
  113. package/dist/wallets/ISpvVaultSigner.js +2 -2
  114. package/package.json +37 -37
  115. package/src/fees/IBtcFeeEstimator.ts +6 -6
  116. package/src/index.ts +54 -54
  117. package/src/info/InfoHandler.ts +106 -106
  118. package/src/plugins/IPlugin.ts +196 -196
  119. package/src/plugins/PluginManager.ts +389 -389
  120. package/src/prices/BinanceSwapPrice.ts +101 -101
  121. package/src/prices/CoinGeckoSwapPrice.ts +75 -75
  122. package/src/prices/ISwapPrice.ts +88 -88
  123. package/src/prices/OKXSwapPrice.ts +101 -101
  124. package/src/storage/IIntermediaryStorage.ts +19 -19
  125. package/src/storagemanager/IntermediaryStorageManager.ts +118 -118
  126. package/src/storagemanager/StorageManager.ts +78 -78
  127. package/src/swaps/SwapHandler.ts +337 -337
  128. package/src/swaps/SwapHandlerSwap.ts +143 -143
  129. package/src/swaps/assertions/AmountAssertions.ts +97 -97
  130. package/src/swaps/assertions/FromBtcAmountAssertions.ts +257 -257
  131. package/src/swaps/assertions/LightningAssertions.ts +103 -103
  132. package/src/swaps/assertions/ToBtcAmountAssertions.ts +209 -209
  133. package/src/swaps/escrow/EscrowHandler.ts +172 -172
  134. package/src/swaps/escrow/EscrowHandlerSwap.ts +86 -86
  135. package/src/swaps/escrow/FromBtcBaseSwap.ts +38 -38
  136. package/src/swaps/escrow/FromBtcBaseSwapHandler.ts +286 -286
  137. package/src/swaps/escrow/ToBtcBaseSwap.ts +85 -85
  138. package/src/swaps/escrow/ToBtcBaseSwapHandler.ts +129 -129
  139. package/src/swaps/escrow/frombtc_abstract/FromBtcAbs.ts +468 -468
  140. package/src/swaps/escrow/frombtc_abstract/FromBtcSwapAbs.ts +65 -65
  141. package/src/swaps/escrow/frombtcln_abstract/FromBtcLnAbs.ts +900 -900
  142. package/src/swaps/escrow/frombtcln_abstract/FromBtcLnSwapAbs.ts +145 -145
  143. package/src/swaps/escrow/frombtcln_autoinit/FromBtcLnAuto.ts +892 -892
  144. package/src/swaps/escrow/frombtcln_autoinit/FromBtcLnAutoSwap.ts +200 -200
  145. package/src/swaps/escrow/tobtc_abstract/ToBtcAbs.ts +947 -947
  146. package/src/swaps/escrow/tobtc_abstract/ToBtcSwapAbs.ts +112 -112
  147. package/src/swaps/escrow/tobtcln_abstract/ToBtcLnAbs.ts +1167 -1167
  148. package/src/swaps/escrow/tobtcln_abstract/ToBtcLnSwapAbs.ts +84 -84
  149. package/src/swaps/spv_vault_swap/SpvVault.ts +182 -182
  150. package/src/swaps/spv_vault_swap/SpvVaultSwap.ts +239 -239
  151. package/src/swaps/spv_vault_swap/SpvVaultSwapHandler.ts +897 -897
  152. package/src/swaps/spv_vault_swap/SpvVaults.ts +640 -640
  153. package/src/swaps/spv_vault_swap/StickyAddress.ts +20 -20
  154. package/src/swaps/trusted/frombtc_trusted/FromBtcTrusted.ts +782 -782
  155. package/src/swaps/trusted/frombtc_trusted/FromBtcTrustedSwap.ts +189 -189
  156. package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrusted.ts +622 -622
  157. package/src/swaps/trusted/frombtcln_trusted/FromBtcLnTrustedSwap.ts +125 -125
  158. package/src/utils/BitcoinUtils.ts +59 -59
  159. package/src/utils/Utils.ts +152 -152
  160. package/src/utils/paramcoders/IParamReader.ts +7 -7
  161. package/src/utils/paramcoders/IParamWriter.ts +8 -8
  162. package/src/utils/paramcoders/LegacyParamEncoder.ts +27 -27
  163. package/src/utils/paramcoders/ParamDecoder.ts +218 -218
  164. package/src/utils/paramcoders/ParamEncoder.ts +29 -29
  165. package/src/utils/paramcoders/SchemaVerifier.ts +96 -96
  166. package/src/utils/paramcoders/server/ServerParamDecoder.ts +118 -118
  167. package/src/utils/paramcoders/server/ServerParamEncoder.ts +75 -75
  168. package/src/wallets/IBitcoinWallet.ts +246 -246
  169. package/src/wallets/ILightningWallet.ts +201 -201
  170. package/src/wallets/ISpvVaultSigner.ts +10 -10
@@ -1,170 +1,170 @@
1
- import { Express } from "express";
2
- import { ToBtcSwapAbs, ToBtcSwapState } from "./ToBtcSwapAbs";
3
- import { MultichainData, SwapHandlerType } from "../../SwapHandler";
4
- import { ISwapPrice } from "../../../prices/ISwapPrice";
5
- import { BtcTx, ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData, BitcoinRpc, BtcBlock } from "@atomiqlabs/base";
6
- import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
7
- import { ToBtcBaseConfig, ToBtcBaseSwapHandler } from "../ToBtcBaseSwapHandler";
8
- import { IBitcoinWallet } from "../../../wallets/IBitcoinWallet";
9
- export type ToBtcConfig = ToBtcBaseConfig & {
10
- sendSafetyFactor: bigint;
11
- minChainCltv: bigint;
12
- networkFeeMultiplier: number;
13
- minConfirmations: number;
14
- maxConfirmations: number;
15
- maxConfTarget: number;
16
- minConfTarget: number;
17
- txCheckInterval: number;
18
- };
19
- export type ToBtcRequestType = {
20
- address: string;
21
- amount: bigint;
22
- confirmationTarget: number;
23
- confirmations: number;
24
- nonce: bigint;
25
- token: string;
26
- offerer: string;
27
- exactIn?: boolean;
28
- };
29
- /**
30
- * Handler for to BTC swaps, utilizing PTLCs (proof-time locked contracts) using btc relay (on-chain bitcoin SPV)
31
- */
32
- export declare class ToBtcAbs extends ToBtcBaseSwapHandler<ToBtcSwapAbs, ToBtcSwapState> {
33
- readonly type = SwapHandlerType.TO_BTC;
34
- readonly swapType = ChainSwapType.CHAIN_NONCED;
35
- readonly inflightSwapStates: Set<ToBtcSwapState>;
36
- activeSubscriptions: {
37
- [txId: string]: ToBtcSwapAbs;
38
- };
39
- bitcoinRpc: BitcoinRpc<BtcBlock>;
40
- bitcoin: IBitcoinWallet;
41
- readonly config: ToBtcConfig;
42
- constructor(storageDirectory: IIntermediaryStorage<ToBtcSwapAbs>, path: string, chainData: MultichainData, bitcoin: IBitcoinWallet, swapPricing: ISwapPrice, bitcoinRpc: BitcoinRpc<BtcBlock>, config: ToBtcConfig);
43
- /**
44
- * Returns the payment hash of the swap, takes swap nonce into account. Payment hash is chain-specific.
45
- *
46
- * @param chainIdentifier
47
- * @param address
48
- * @param confirmations
49
- * @param nonce
50
- * @param amount
51
- */
52
- private getHash;
53
- /**
54
- * Tries to claim the swap after our transaction was confirmed
55
- *
56
- * @param tx
57
- * @param swap
58
- * @param vout
59
- */
60
- private tryClaimSwap;
61
- protected processPastSwap(swap: ToBtcSwapAbs): Promise<void>;
62
- /**
63
- * Checks past swaps, deletes ones that are already expired.
64
- */
65
- protected processPastSwaps(): Promise<void>;
66
- protected processBtcTx(swap: ToBtcSwapAbs, tx: BtcTx): Promise<boolean>;
67
- /**
68
- * Checks active sent out bitcoin transactions
69
- */
70
- private processBtcTxs;
71
- /**
72
- * Subscribes to and periodically checks txId used to send out funds for the swap for enough confirmations
73
- *
74
- * @param payment
75
- */
76
- protected subscribeToPayment(payment: ToBtcSwapAbs): void;
77
- protected unsubscribePayment(payment: ToBtcSwapAbs): void;
78
- /**
79
- * Checks if expiry time on the swap leaves us enough room to send a transaction and for the transaction to confirm
80
- *
81
- * @param swap
82
- * @private
83
- * @throws DefinedRuntimeError will throw an error in case there isn't enough time for us to send a BTC payout tx
84
- */
85
- protected checkExpiresTooSoon(swap: ToBtcSwapAbs): void;
86
- /**
87
- * Checks if the actual fee for the swap is no higher than the quoted estimate
88
- *
89
- * @param quotedSatsPerVbyte
90
- * @param actualSatsPerVbyte
91
- * @private
92
- * @throws DefinedRuntimeError will throw an error in case the actual fee is higher than quoted fee
93
- */
94
- protected checkCalculatedTxFee(quotedSatsPerVbyte: bigint, actualSatsPerVbyte: bigint): void;
95
- /**
96
- * Sends a bitcoin transaction to payout BTC for a swap
97
- *
98
- * @param swap
99
- * @private
100
- * @throws DefinedRuntimeError will throw an error in case the payment cannot be initiated
101
- */
102
- private sendBitcoinPayment;
103
- /**
104
- * Called after swap was successfully committed, will check if bitcoin tx is already sent, if not tries to send it and subscribes to it
105
- *
106
- * @param swap
107
- */
108
- private processInitialized;
109
- protected processInitializeEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: InitializeEvent<SwapData>): Promise<void>;
110
- protected processClaimEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: ClaimEvent<SwapData>): Promise<void>;
111
- protected processRefundEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: RefundEvent<SwapData>): Promise<void>;
112
- /**
113
- * Returns required expiry delta for swap params
114
- *
115
- * @param confirmationTarget
116
- * @param confirmations
117
- */
118
- protected getExpiryFromCLTV(confirmationTarget: number, confirmations: number): bigint;
119
- /**
120
- * Checks if the requested nonce is valid
121
- *
122
- * @param nonce
123
- * @throws {DefinedRuntimeError} will throw an error if the nonce is invalid
124
- */
125
- private checkNonceValid;
126
- /**
127
- * Checks if confirmation target is within configured bounds
128
- *
129
- * @param confirmationTarget
130
- * @throws {DefinedRuntimeError} will throw an error if the confirmationTarget is out of bounds
131
- */
132
- protected checkConfirmationTarget(confirmationTarget: number): void;
133
- /**
134
- * Checks if the required confirmations are within configured bounds
135
- *
136
- * @param confirmations
137
- * @throws {DefinedRuntimeError} will throw an error if the confirmations are out of bounds
138
- */
139
- protected checkRequiredConfirmations(confirmations: number): void;
140
- /**
141
- * Checks the validity of the provided address, also checks if the resulting output script isn't too large
142
- *
143
- * @param address
144
- * @throws {DefinedRuntimeError} will throw an error if the address is invalid
145
- */
146
- protected checkAddress(address: string): void;
147
- /**
148
- * Checks if the swap is expired, taking into consideration on-chain time skew
149
- *
150
- * @param swap
151
- * @throws {DefinedRuntimeError} will throw an error if the swap is expired
152
- */
153
- protected checkExpired(swap: ToBtcSwapAbs): Promise<void>;
154
- /**
155
- * Checks & returns the network fee needed for a transaction
156
- *
157
- * @param address
158
- * @param amount
159
- * @throws {DefinedRuntimeError} will throw an error if there are not enough BTC funds
160
- */
161
- private checkAndGetNetworkFee;
162
- startRestServer(restServer: Express): void;
163
- /**
164
- * Starts watchdog checking sent bitcoin transactions
165
- */
166
- protected startTxTimer(): Promise<void>;
167
- startWatchdog(): Promise<void>;
168
- init(): Promise<void>;
169
- getInfoData(): any;
170
- }
1
+ import { Express } from "express";
2
+ import { ToBtcSwapAbs, ToBtcSwapState } from "./ToBtcSwapAbs";
3
+ import { MultichainData, SwapHandlerType } from "../../SwapHandler";
4
+ import { ISwapPrice } from "../../../prices/ISwapPrice";
5
+ import { BtcTx, ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData, BitcoinRpc, BtcBlock } from "@atomiqlabs/base";
6
+ import { IIntermediaryStorage } from "../../../storage/IIntermediaryStorage";
7
+ import { ToBtcBaseConfig, ToBtcBaseSwapHandler } from "../ToBtcBaseSwapHandler";
8
+ import { IBitcoinWallet } from "../../../wallets/IBitcoinWallet";
9
+ export type ToBtcConfig = ToBtcBaseConfig & {
10
+ sendSafetyFactor: bigint;
11
+ minChainCltv: bigint;
12
+ networkFeeMultiplier: number;
13
+ minConfirmations: number;
14
+ maxConfirmations: number;
15
+ maxConfTarget: number;
16
+ minConfTarget: number;
17
+ txCheckInterval: number;
18
+ };
19
+ export type ToBtcRequestType = {
20
+ address: string;
21
+ amount: bigint;
22
+ confirmationTarget: number;
23
+ confirmations: number;
24
+ nonce: bigint;
25
+ token: string;
26
+ offerer: string;
27
+ exactIn?: boolean;
28
+ };
29
+ /**
30
+ * Handler for to BTC swaps, utilizing PTLCs (proof-time locked contracts) using btc relay (on-chain bitcoin SPV)
31
+ */
32
+ export declare class ToBtcAbs extends ToBtcBaseSwapHandler<ToBtcSwapAbs, ToBtcSwapState> {
33
+ readonly type = SwapHandlerType.TO_BTC;
34
+ readonly swapType = ChainSwapType.CHAIN_NONCED;
35
+ readonly inflightSwapStates: Set<ToBtcSwapState>;
36
+ activeSubscriptions: {
37
+ [txId: string]: ToBtcSwapAbs;
38
+ };
39
+ bitcoinRpc: BitcoinRpc<BtcBlock>;
40
+ bitcoin: IBitcoinWallet;
41
+ readonly config: ToBtcConfig;
42
+ constructor(storageDirectory: IIntermediaryStorage<ToBtcSwapAbs>, path: string, chainData: MultichainData, bitcoin: IBitcoinWallet, swapPricing: ISwapPrice, bitcoinRpc: BitcoinRpc<BtcBlock>, config: ToBtcConfig);
43
+ /**
44
+ * Returns the payment hash of the swap, takes swap nonce into account. Payment hash is chain-specific.
45
+ *
46
+ * @param chainIdentifier
47
+ * @param address
48
+ * @param confirmations
49
+ * @param nonce
50
+ * @param amount
51
+ */
52
+ private getHash;
53
+ /**
54
+ * Tries to claim the swap after our transaction was confirmed
55
+ *
56
+ * @param tx
57
+ * @param swap
58
+ * @param vout
59
+ */
60
+ private tryClaimSwap;
61
+ protected processPastSwap(swap: ToBtcSwapAbs): Promise<void>;
62
+ /**
63
+ * Checks past swaps, deletes ones that are already expired.
64
+ */
65
+ protected processPastSwaps(): Promise<void>;
66
+ protected processBtcTx(swap: ToBtcSwapAbs, tx: BtcTx): Promise<boolean>;
67
+ /**
68
+ * Checks active sent out bitcoin transactions
69
+ */
70
+ private processBtcTxs;
71
+ /**
72
+ * Subscribes to and periodically checks txId used to send out funds for the swap for enough confirmations
73
+ *
74
+ * @param payment
75
+ */
76
+ protected subscribeToPayment(payment: ToBtcSwapAbs): void;
77
+ protected unsubscribePayment(payment: ToBtcSwapAbs): void;
78
+ /**
79
+ * Checks if expiry time on the swap leaves us enough room to send a transaction and for the transaction to confirm
80
+ *
81
+ * @param swap
82
+ * @private
83
+ * @throws DefinedRuntimeError will throw an error in case there isn't enough time for us to send a BTC payout tx
84
+ */
85
+ protected checkExpiresTooSoon(swap: ToBtcSwapAbs): void;
86
+ /**
87
+ * Checks if the actual fee for the swap is no higher than the quoted estimate
88
+ *
89
+ * @param quotedSatsPerVbyte
90
+ * @param actualSatsPerVbyte
91
+ * @private
92
+ * @throws DefinedRuntimeError will throw an error in case the actual fee is higher than quoted fee
93
+ */
94
+ protected checkCalculatedTxFee(quotedSatsPerVbyte: bigint, actualSatsPerVbyte: bigint): void;
95
+ /**
96
+ * Sends a bitcoin transaction to payout BTC for a swap
97
+ *
98
+ * @param swap
99
+ * @private
100
+ * @throws DefinedRuntimeError will throw an error in case the payment cannot be initiated
101
+ */
102
+ private sendBitcoinPayment;
103
+ /**
104
+ * Called after swap was successfully committed, will check if bitcoin tx is already sent, if not tries to send it and subscribes to it
105
+ *
106
+ * @param swap
107
+ */
108
+ private processInitialized;
109
+ protected processInitializeEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: InitializeEvent<SwapData>): Promise<void>;
110
+ protected processClaimEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: ClaimEvent<SwapData>): Promise<void>;
111
+ protected processRefundEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: RefundEvent<SwapData>): Promise<void>;
112
+ /**
113
+ * Returns required expiry delta for swap params
114
+ *
115
+ * @param confirmationTarget
116
+ * @param confirmations
117
+ */
118
+ protected getExpiryFromCLTV(confirmationTarget: number, confirmations: number): bigint;
119
+ /**
120
+ * Checks if the requested nonce is valid
121
+ *
122
+ * @param nonce
123
+ * @throws {DefinedRuntimeError} will throw an error if the nonce is invalid
124
+ */
125
+ private checkNonceValid;
126
+ /**
127
+ * Checks if confirmation target is within configured bounds
128
+ *
129
+ * @param confirmationTarget
130
+ * @throws {DefinedRuntimeError} will throw an error if the confirmationTarget is out of bounds
131
+ */
132
+ protected checkConfirmationTarget(confirmationTarget: number): void;
133
+ /**
134
+ * Checks if the required confirmations are within configured bounds
135
+ *
136
+ * @param confirmations
137
+ * @throws {DefinedRuntimeError} will throw an error if the confirmations are out of bounds
138
+ */
139
+ protected checkRequiredConfirmations(confirmations: number): void;
140
+ /**
141
+ * Checks the validity of the provided address, also checks if the resulting output script isn't too large
142
+ *
143
+ * @param address
144
+ * @throws {DefinedRuntimeError} will throw an error if the address is invalid
145
+ */
146
+ protected checkAddress(address: string): void;
147
+ /**
148
+ * Checks if the swap is expired, taking into consideration on-chain time skew
149
+ *
150
+ * @param swap
151
+ * @throws {DefinedRuntimeError} will throw an error if the swap is expired
152
+ */
153
+ protected checkExpired(swap: ToBtcSwapAbs): Promise<void>;
154
+ /**
155
+ * Checks & returns the network fee needed for a transaction
156
+ *
157
+ * @param address
158
+ * @param amount
159
+ * @throws {DefinedRuntimeError} will throw an error if there are not enough BTC funds
160
+ */
161
+ private checkAndGetNetworkFee;
162
+ startRestServer(restServer: Express): void;
163
+ /**
164
+ * Starts watchdog checking sent bitcoin transactions
165
+ */
166
+ protected startTxTimer(): Promise<void>;
167
+ startWatchdog(): Promise<void>;
168
+ init(): Promise<void>;
169
+ getInfoData(): any;
170
+ }