@atomiqlabs/lp-lib 11.0.5 → 12.0.0-beta.0

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 (100) hide show
  1. package/dist/info/InfoHandler.js +3 -12
  2. package/dist/plugins/IPlugin.d.ts +34 -35
  3. package/dist/plugins/IPlugin.js +7 -8
  4. package/dist/plugins/PluginManager.d.ts +29 -30
  5. package/dist/plugins/PluginManager.js +160 -188
  6. package/dist/prices/BinanceSwapPrice.d.ts +1 -2
  7. package/dist/prices/BinanceSwapPrice.js +56 -70
  8. package/dist/prices/CoinGeckoSwapPrice.d.ts +2 -3
  9. package/dist/prices/CoinGeckoSwapPrice.js +30 -42
  10. package/dist/prices/OKXSwapPrice.d.ts +1 -2
  11. package/dist/prices/OKXSwapPrice.js +56 -70
  12. package/dist/storage/IIntermediaryStorage.d.ts +8 -5
  13. package/dist/storagemanager/IntermediaryStorageManager.d.ts +8 -5
  14. package/dist/storagemanager/IntermediaryStorageManager.js +52 -61
  15. package/dist/storagemanager/StorageManager.js +42 -59
  16. package/dist/swaps/FromBtcBaseSwap.d.ts +7 -8
  17. package/dist/swaps/FromBtcBaseSwap.js +2 -3
  18. package/dist/swaps/FromBtcBaseSwapHandler.d.ts +44 -31
  19. package/dist/swaps/FromBtcBaseSwapHandler.js +217 -196
  20. package/dist/swaps/FromBtcLnBaseSwapHandler.d.ts +1 -2
  21. package/dist/swaps/FromBtcLnBaseSwapHandler.js +13 -24
  22. package/dist/swaps/ISwapPrice.d.ts +4 -5
  23. package/dist/swaps/ISwapPrice.js +8 -30
  24. package/dist/swaps/SwapHandler.d.ts +26 -15
  25. package/dist/swaps/SwapHandler.js +107 -66
  26. package/dist/swaps/SwapHandlerSwap.d.ts +22 -11
  27. package/dist/swaps/SwapHandlerSwap.js +32 -8
  28. package/dist/swaps/ToBtcBaseSwap.d.ts +16 -17
  29. package/dist/swaps/ToBtcBaseSwap.js +4 -4
  30. package/dist/swaps/ToBtcBaseSwapHandler.d.ts +17 -17
  31. package/dist/swaps/ToBtcBaseSwapHandler.js +140 -155
  32. package/dist/swaps/frombtc_abstract/FromBtcAbs.d.ts +8 -15
  33. package/dist/swaps/frombtc_abstract/FromBtcAbs.js +131 -196
  34. package/dist/swaps/frombtc_abstract/FromBtcSwapAbs.d.ts +3 -5
  35. package/dist/swaps/frombtc_abstract/FromBtcSwapAbs.js +4 -4
  36. package/dist/swaps/frombtc_trusted/FromBtcTrusted.d.ts +10 -8
  37. package/dist/swaps/frombtc_trusted/FromBtcTrusted.js +330 -362
  38. package/dist/swaps/frombtc_trusted/FromBtcTrustedSwap.d.ts +10 -10
  39. package/dist/swaps/frombtc_trusted/FromBtcTrustedSwap.js +7 -4
  40. package/dist/swaps/frombtcln_abstract/FromBtcLnAbs.d.ts +8 -8
  41. package/dist/swaps/frombtcln_abstract/FromBtcLnAbs.js +330 -400
  42. package/dist/swaps/frombtcln_abstract/FromBtcLnSwapAbs.d.ts +10 -4
  43. package/dist/swaps/frombtcln_abstract/FromBtcLnSwapAbs.js +36 -6
  44. package/dist/swaps/frombtcln_trusted/FromBtcLnTrusted.d.ts +8 -7
  45. package/dist/swaps/frombtcln_trusted/FromBtcLnTrusted.js +251 -273
  46. package/dist/swaps/frombtcln_trusted/FromBtcLnTrustedSwap.d.ts +5 -5
  47. package/dist/swaps/frombtcln_trusted/FromBtcLnTrustedSwap.js +7 -5
  48. package/dist/swaps/tobtc_abstract/ToBtcAbs.d.ts +13 -12
  49. package/dist/swaps/tobtc_abstract/ToBtcAbs.js +261 -323
  50. package/dist/swaps/tobtc_abstract/ToBtcSwapAbs.d.ts +4 -4
  51. package/dist/swaps/tobtc_abstract/ToBtcSwapAbs.js +7 -6
  52. package/dist/swaps/tobtcln_abstract/ToBtcLnAbs.d.ts +22 -21
  53. package/dist/swaps/tobtcln_abstract/ToBtcLnAbs.js +398 -453
  54. package/dist/swaps/tobtcln_abstract/ToBtcLnSwapAbs.d.ts +3 -2
  55. package/dist/swaps/tobtcln_abstract/ToBtcLnSwapAbs.js +10 -6
  56. package/dist/utils/Utils.d.ts +2 -3
  57. package/dist/utils/Utils.js +4 -14
  58. package/dist/utils/paramcoders/LegacyParamEncoder.js +3 -14
  59. package/dist/utils/paramcoders/ParamDecoder.js +53 -65
  60. package/dist/utils/paramcoders/SchemaVerifier.d.ts +4 -5
  61. package/dist/utils/paramcoders/SchemaVerifier.js +8 -9
  62. package/dist/utils/paramcoders/server/ServerParamDecoder.js +1 -1
  63. package/dist/utils/paramcoders/server/ServerParamEncoder.js +3 -14
  64. package/dist/wallets/IBitcoinWallet.d.ts +4 -5
  65. package/dist/wallets/ILightningWallet.d.ts +20 -21
  66. package/dist/wallets/ILightningWallet.js +1 -1
  67. package/package.json +4 -6
  68. package/src/plugins/IPlugin.ts +28 -29
  69. package/src/plugins/PluginManager.ts +21 -22
  70. package/src/prices/BinanceSwapPrice.ts +3 -4
  71. package/src/prices/CoinGeckoSwapPrice.ts +4 -5
  72. package/src/prices/OKXSwapPrice.ts +3 -4
  73. package/src/storage/IIntermediaryStorage.ts +4 -5
  74. package/src/storagemanager/IntermediaryStorageManager.ts +17 -9
  75. package/src/swaps/FromBtcBaseSwap.ts +9 -10
  76. package/src/swaps/FromBtcBaseSwapHandler.ts +133 -91
  77. package/src/swaps/FromBtcLnBaseSwapHandler.ts +2 -3
  78. package/src/swaps/ISwapPrice.ts +10 -20
  79. package/src/swaps/SwapHandler.ts +101 -35
  80. package/src/swaps/SwapHandlerSwap.ts +42 -17
  81. package/src/swaps/ToBtcBaseSwap.ts +20 -18
  82. package/src/swaps/ToBtcBaseSwapHandler.ts +33 -33
  83. package/src/swaps/frombtc_abstract/FromBtcAbs.ts +64 -97
  84. package/src/swaps/frombtc_abstract/FromBtcSwapAbs.ts +7 -8
  85. package/src/swaps/frombtc_trusted/FromBtcTrusted.ts +56 -55
  86. package/src/swaps/frombtc_trusted/FromBtcTrustedSwap.ts +28 -21
  87. package/src/swaps/frombtcln_abstract/FromBtcLnAbs.ts +81 -116
  88. package/src/swaps/frombtcln_abstract/FromBtcLnSwapAbs.ts +73 -9
  89. package/src/swaps/frombtcln_trusted/FromBtcLnTrusted.ts +39 -36
  90. package/src/swaps/frombtcln_trusted/FromBtcLnTrustedSwap.ts +26 -12
  91. package/src/swaps/tobtc_abstract/ToBtcAbs.ts +82 -98
  92. package/src/swaps/tobtc_abstract/ToBtcSwapAbs.ts +25 -20
  93. package/src/swaps/tobtcln_abstract/ToBtcLnAbs.ts +106 -118
  94. package/src/swaps/tobtcln_abstract/ToBtcLnSwapAbs.ts +17 -9
  95. package/src/utils/Utils.ts +3 -4
  96. package/src/utils/paramcoders/ParamDecoder.ts +5 -5
  97. package/src/utils/paramcoders/SchemaVerifier.ts +10 -11
  98. package/src/utils/paramcoders/server/ServerParamDecoder.ts +1 -1
  99. package/src/wallets/IBitcoinWallet.ts +4 -5
  100. package/src/wallets/ILightningWallet.ts +21 -22
@@ -1,4 +1,3 @@
1
- import * as BN from "bn.js";
2
1
  import { SwapData } from "@atomiqlabs/base";
3
2
  import { FromBtcBaseSwap } from "../FromBtcBaseSwap";
4
3
  export declare enum FromBtcLnTrustedSwapState {
@@ -12,14 +11,15 @@ export declare enum FromBtcLnTrustedSwapState {
12
11
  }
13
12
  export declare class FromBtcLnTrustedSwap<T extends SwapData = SwapData> extends FromBtcBaseSwap<T, FromBtcLnTrustedSwapState> {
14
13
  readonly pr: string;
15
- readonly output: BN;
14
+ readonly output: bigint;
16
15
  readonly dstAddress: string;
17
16
  readonly secret: string;
17
+ readonly token: string;
18
18
  scRawTx: string;
19
- constructor(chainIdentifier: string, pr: string, inputMtokens: BN, swapFee: BN, swapFeeInToken: BN, output: BN, secret: string, dstAddress: string);
19
+ constructor(chainIdentifier: string, pr: string, inputMtokens: bigint, swapFee: bigint, swapFeeInToken: bigint, output: bigint, secret: string, dstAddress: string, token: string);
20
20
  constructor(obj: any);
21
- getHash(): string;
22
- getSequence(): BN;
21
+ getClaimHash(): string;
22
+ getSequence(): bigint;
23
23
  serialize(): any;
24
24
  isFailed(): boolean;
25
25
  isInitiated(): boolean;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FromBtcLnTrustedSwap = exports.FromBtcLnTrustedSwapState = void 0;
4
- const BN = require("bn.js");
5
4
  const crypto_1 = require("crypto");
6
5
  const FromBtcBaseSwap_1 = require("../FromBtcBaseSwap");
7
6
  const Utils_1 = require("../../utils/Utils");
@@ -16,14 +15,15 @@ var FromBtcLnTrustedSwapState;
16
15
  FromBtcLnTrustedSwapState[FromBtcLnTrustedSwapState["SETTLED"] = 4] = "SETTLED";
17
16
  })(FromBtcLnTrustedSwapState = exports.FromBtcLnTrustedSwapState || (exports.FromBtcLnTrustedSwapState = {}));
18
17
  class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
19
- constructor(chainIdOrObj, pr, inputMtokens, swapFee, swapFeeInToken, output, secret, dstAddress) {
18
+ constructor(chainIdOrObj, pr, inputMtokens, swapFee, swapFeeInToken, output, secret, dstAddress, token) {
20
19
  if (typeof (chainIdOrObj) === "string") {
21
- super(chainIdOrObj, inputMtokens.add(new BN(999)).div(new BN(1000)), swapFee, swapFeeInToken);
20
+ super(chainIdOrObj, (inputMtokens + 999n) / 1000n, swapFee, swapFeeInToken);
22
21
  this.state = FromBtcLnTrustedSwapState.CREATED;
23
22
  this.pr = pr;
24
23
  this.output = output;
25
24
  this.secret = secret;
26
25
  this.dstAddress = dstAddress;
26
+ this.token = token;
27
27
  }
28
28
  else {
29
29
  super(chainIdOrObj);
@@ -31,15 +31,16 @@ class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
31
31
  this.output = (0, Utils_1.deserializeBN)(chainIdOrObj.output);
32
32
  this.secret = chainIdOrObj.secret;
33
33
  this.dstAddress = chainIdOrObj.dstAddress;
34
+ this.token = chainIdOrObj.token;
34
35
  this.scRawTx = chainIdOrObj.scRawTx;
35
36
  }
36
37
  this.type = null;
37
38
  }
38
- getHash() {
39
+ getClaimHash() {
39
40
  return (0, crypto_1.createHash)("sha256").update(Buffer.from(this.secret, "hex")).digest().toString("hex");
40
41
  }
41
42
  getSequence() {
42
- return new BN(0);
43
+ return 0n;
43
44
  }
44
45
  serialize() {
45
46
  const partialSerialized = super.serialize();
@@ -47,6 +48,7 @@ class FromBtcLnTrustedSwap extends FromBtcBaseSwap_1.FromBtcBaseSwap {
47
48
  partialSerialized.output = (0, Utils_1.serializeBN)(this.output);
48
49
  partialSerialized.secret = this.secret;
49
50
  partialSerialized.dstAddress = this.dstAddress;
51
+ partialSerialized.token = this.token;
50
52
  partialSerialized.scRawTx = this.scRawTx;
51
53
  return partialSerialized;
52
54
  }
@@ -1,16 +1,15 @@
1
1
  import { Express } from "express";
2
- import * as BN from "bn.js";
3
2
  import { ToBtcSwapAbs, ToBtcSwapState } from "./ToBtcSwapAbs";
4
3
  import { MultichainData, SwapHandlerType } from "../SwapHandler";
5
4
  import { ISwapPrice } from "../ISwapPrice";
6
- import { BtcTx, ClaimEvent, InitializeEvent, RefundEvent, SwapData, BitcoinRpc, BtcBlock } from "@atomiqlabs/base";
5
+ import { BtcTx, ChainSwapType, ClaimEvent, InitializeEvent, RefundEvent, SwapData, BitcoinRpc, BtcBlock } from "@atomiqlabs/base";
7
6
  import { IIntermediaryStorage } from "../../storage/IIntermediaryStorage";
8
7
  import { ToBtcBaseConfig, ToBtcBaseSwapHandler } from "../ToBtcBaseSwapHandler";
9
8
  import { PromiseQueue } from "promise-queue-ts";
10
9
  import { IBitcoinWallet } from "../../wallets/IBitcoinWallet";
11
10
  export type ToBtcConfig = ToBtcBaseConfig & {
12
- sendSafetyFactor: BN;
13
- minChainCltv: BN;
11
+ sendSafetyFactor: bigint;
12
+ minChainCltv: bigint;
14
13
  networkFeeMultiplier: number;
15
14
  minConfirmations: number;
16
15
  maxConfirmations: number;
@@ -20,10 +19,10 @@ export type ToBtcConfig = ToBtcBaseConfig & {
20
19
  };
21
20
  export type ToBtcRequestType = {
22
21
  address: string;
23
- amount: BN;
22
+ amount: bigint;
24
23
  confirmationTarget: number;
25
24
  confirmations: number;
26
- nonce: BN;
25
+ nonce: bigint;
27
26
  token: string;
28
27
  offerer: string;
29
28
  exactIn?: boolean;
@@ -33,6 +32,7 @@ export type ToBtcRequestType = {
33
32
  */
34
33
  export declare class ToBtcAbs extends ToBtcBaseSwapHandler<ToBtcSwapAbs, ToBtcSwapState> {
35
34
  readonly type = SwapHandlerType.TO_BTC;
35
+ readonly swapType = ChainSwapType.CHAIN_NONCED;
36
36
  activeSubscriptions: {
37
37
  [txId: string]: ToBtcSwapAbs;
38
38
  };
@@ -46,6 +46,7 @@ export declare class ToBtcAbs extends ToBtcBaseSwapHandler<ToBtcSwapAbs, ToBtcSw
46
46
  *
47
47
  * @param chainIdentifier
48
48
  * @param address
49
+ * @param confirmations
49
50
  * @param nonce
50
51
  * @param amount
51
52
  */
@@ -91,7 +92,7 @@ export declare class ToBtcAbs extends ToBtcBaseSwapHandler<ToBtcSwapAbs, ToBtcSw
91
92
  * @private
92
93
  * @throws DefinedRuntimeError will throw an error in case the actual fee is higher than quoted fee
93
94
  */
94
- protected checkCalculatedTxFee(quotedSatsPerVbyte: BN, actualSatsPerVbyte: BN): void;
95
+ protected checkCalculatedTxFee(quotedSatsPerVbyte: bigint, actualSatsPerVbyte: bigint): void;
95
96
  /**
96
97
  * Sends a bitcoin transaction to payout BTC for a swap
97
98
  *
@@ -106,16 +107,16 @@ export declare class ToBtcAbs extends ToBtcBaseSwapHandler<ToBtcSwapAbs, ToBtcSw
106
107
  * @param swap
107
108
  */
108
109
  private processInitialized;
109
- protected processInitializeEvent(chainIdentifier: string, event: InitializeEvent<SwapData>): Promise<void>;
110
- protected processClaimEvent(chainIdentifier: string, event: ClaimEvent<SwapData>): Promise<void>;
111
- protected processRefundEvent(chainIdentifier: string, event: RefundEvent<SwapData>): Promise<void>;
110
+ protected processInitializeEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: InitializeEvent<SwapData>): Promise<void>;
111
+ protected processClaimEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: ClaimEvent<SwapData>): Promise<void>;
112
+ protected processRefundEvent(chainIdentifier: string, swap: ToBtcSwapAbs, event: RefundEvent<SwapData>): Promise<void>;
112
113
  /**
113
114
  * Returns required expiry delta for swap params
114
115
  *
115
116
  * @param confirmationTarget
116
117
  * @param confirmations
117
118
  */
118
- protected getExpiryFromCLTV(confirmationTarget: number, confirmations: number): BN;
119
+ protected getExpiryFromCLTV(confirmationTarget: number, confirmations: number): bigint;
119
120
  /**
120
121
  * Checks if the requested nonce is valid
121
122
  *
@@ -150,7 +151,7 @@ export declare class ToBtcAbs extends ToBtcBaseSwapHandler<ToBtcSwapAbs, ToBtcSw
150
151
  * @param swap
151
152
  * @throws {DefinedRuntimeError} will throw an error if the swap is expired
152
153
  */
153
- protected checkExpired(swap: ToBtcSwapAbs): void;
154
+ protected checkExpired(swap: ToBtcSwapAbs): Promise<void>;
154
155
  /**
155
156
  * Checks & returns the network fee needed for a transaction
156
157
  *