@atomiqlabs/lp-lib 12.1.0 → 13.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 (119) hide show
  1. package/dist/index.d.ts +18 -13
  2. package/dist/index.js +18 -13
  3. package/dist/plugins/IPlugin.d.ts +35 -12
  4. package/dist/plugins/PluginManager.d.ts +38 -15
  5. package/dist/plugins/PluginManager.js +33 -9
  6. package/dist/prices/BinanceSwapPrice.d.ts +1 -1
  7. package/dist/prices/BinanceSwapPrice.js +1 -1
  8. package/dist/prices/CoinGeckoSwapPrice.d.ts +1 -1
  9. package/dist/prices/CoinGeckoSwapPrice.js +1 -1
  10. package/dist/{swaps → prices}/ISwapPrice.js +4 -0
  11. package/dist/prices/OKXSwapPrice.d.ts +1 -1
  12. package/dist/prices/OKXSwapPrice.js +1 -1
  13. package/dist/swaps/SwapHandler.d.ts +20 -58
  14. package/dist/swaps/SwapHandler.js +17 -186
  15. package/dist/swaps/SwapHandlerSwap.d.ts +8 -23
  16. package/dist/swaps/SwapHandlerSwap.js +7 -39
  17. package/dist/swaps/assertions/AmountAssertions.d.ts +28 -0
  18. package/dist/swaps/assertions/AmountAssertions.js +72 -0
  19. package/dist/swaps/assertions/FromBtcAmountAssertions.d.ts +76 -0
  20. package/dist/swaps/assertions/FromBtcAmountAssertions.js +162 -0
  21. package/dist/swaps/assertions/LightningAssertions.d.ts +44 -0
  22. package/dist/swaps/assertions/LightningAssertions.js +86 -0
  23. package/dist/swaps/assertions/ToBtcAmountAssertions.d.ts +53 -0
  24. package/dist/swaps/{ToBtcBaseSwapHandler.js → assertions/ToBtcAmountAssertions.js} +20 -94
  25. package/dist/swaps/escrow/EscrowHandler.d.ts +51 -0
  26. package/dist/swaps/escrow/EscrowHandler.js +158 -0
  27. package/dist/swaps/escrow/EscrowHandlerSwap.d.ts +35 -0
  28. package/dist/swaps/escrow/EscrowHandlerSwap.js +69 -0
  29. package/dist/swaps/{FromBtcBaseSwap.d.ts → escrow/FromBtcBaseSwap.d.ts} +2 -3
  30. package/dist/swaps/{FromBtcBaseSwap.js → escrow/FromBtcBaseSwap.js} +4 -7
  31. package/dist/swaps/{FromBtcBaseSwapHandler.d.ts → escrow/FromBtcBaseSwapHandler.d.ts} +10 -49
  32. package/dist/swaps/{FromBtcBaseSwapHandler.js → escrow/FromBtcBaseSwapHandler.js} +16 -137
  33. package/dist/swaps/{ToBtcBaseSwap.d.ts → escrow/ToBtcBaseSwap.d.ts} +2 -2
  34. package/dist/swaps/{ToBtcBaseSwap.js → escrow/ToBtcBaseSwap.js} +4 -4
  35. package/dist/swaps/escrow/ToBtcBaseSwapHandler.d.ts +53 -0
  36. package/dist/swaps/escrow/ToBtcBaseSwapHandler.js +81 -0
  37. package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcAbs.d.ts +4 -4
  38. package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcAbs.js +15 -15
  39. package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcSwapAbs.js +1 -1
  40. package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnAbs.d.ts +9 -7
  41. package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnAbs.js +22 -19
  42. package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnSwapAbs.js +3 -3
  43. package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcAbs.d.ts +4 -4
  44. package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcAbs.js +14 -13
  45. package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcSwapAbs.js +3 -3
  46. package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnAbs.d.ts +6 -26
  47. package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnAbs.js +20 -57
  48. package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnSwapAbs.js +3 -3
  49. package/dist/swaps/spv_vault_swap/SpvVault.d.ts +41 -0
  50. package/dist/swaps/spv_vault_swap/SpvVault.js +111 -0
  51. package/dist/swaps/spv_vault_swap/SpvVaultSwap.d.ts +63 -0
  52. package/dist/swaps/spv_vault_swap/SpvVaultSwap.js +145 -0
  53. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.d.ts +68 -0
  54. package/dist/swaps/spv_vault_swap/SpvVaultSwapHandler.js +469 -0
  55. package/dist/swaps/spv_vault_swap/SpvVaults.d.ts +57 -0
  56. package/dist/swaps/spv_vault_swap/SpvVaults.js +369 -0
  57. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrusted.d.ts +10 -13
  58. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrusted.js +25 -30
  59. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrustedSwap.d.ts +9 -4
  60. package/dist/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrustedSwap.js +15 -7
  61. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrusted.d.ts +12 -14
  62. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrusted.js +33 -35
  63. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrustedSwap.d.ts +9 -4
  64. package/dist/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrustedSwap.js +17 -7
  65. package/dist/utils/Utils.d.ts +13 -5
  66. package/dist/utils/Utils.js +23 -1
  67. package/dist/wallets/IBitcoinWallet.d.ts +6 -0
  68. package/dist/wallets/ISpvVaultSigner.d.ts +7 -0
  69. package/dist/wallets/ISpvVaultSigner.js +2 -0
  70. package/dist/wallets/ISpvVaultWallet.d.ts +42 -0
  71. package/dist/wallets/ISpvVaultWallet.js +2 -0
  72. package/package.json +2 -2
  73. package/src/index.ts +21 -15
  74. package/src/plugins/IPlugin.ts +27 -19
  75. package/src/plugins/PluginManager.ts +51 -26
  76. package/src/prices/BinanceSwapPrice.ts +1 -1
  77. package/src/prices/CoinGeckoSwapPrice.ts +1 -1
  78. package/src/{swaps → prices}/ISwapPrice.ts +4 -0
  79. package/src/prices/OKXSwapPrice.ts +1 -1
  80. package/src/swaps/SwapHandler.ts +22 -205
  81. package/src/swaps/SwapHandlerSwap.ts +10 -46
  82. package/src/swaps/assertions/AmountAssertions.ts +77 -0
  83. package/src/swaps/assertions/FromBtcAmountAssertions.ts +228 -0
  84. package/src/swaps/assertions/LightningAssertions.ts +103 -0
  85. package/src/swaps/{ToBtcBaseSwapHandler.ts → assertions/ToBtcAmountAssertions.ts} +27 -142
  86. package/src/swaps/escrow/EscrowHandler.ts +179 -0
  87. package/src/swaps/escrow/EscrowHandlerSwap.ts +87 -0
  88. package/src/swaps/{FromBtcBaseSwap.ts → escrow/FromBtcBaseSwap.ts} +4 -8
  89. package/src/swaps/{FromBtcBaseSwapHandler.ts → escrow/FromBtcBaseSwapHandler.ts} +30 -190
  90. package/src/swaps/{ToBtcBaseSwap.ts → escrow/ToBtcBaseSwap.ts} +4 -5
  91. package/src/swaps/escrow/ToBtcBaseSwapHandler.ts +130 -0
  92. package/src/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcAbs.ts +20 -20
  93. package/src/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcSwapAbs.ts +1 -1
  94. package/src/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnAbs.ts +29 -25
  95. package/src/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnSwapAbs.ts +2 -2
  96. package/src/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcAbs.ts +19 -18
  97. package/src/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcSwapAbs.ts +2 -2
  98. package/src/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnAbs.ts +26 -66
  99. package/src/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnSwapAbs.ts +2 -2
  100. package/src/swaps/spv_vault_swap/SpvVault.ts +143 -0
  101. package/src/swaps/spv_vault_swap/SpvVaultSwap.ts +207 -0
  102. package/src/swaps/spv_vault_swap/SpvVaultSwapHandler.ts +606 -0
  103. package/src/swaps/spv_vault_swap/SpvVaults.ts +441 -0
  104. package/src/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrusted.ts +36 -51
  105. package/src/swaps/{frombtc_trusted → trusted/frombtc_trusted}/FromBtcTrustedSwap.ts +18 -8
  106. package/src/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrusted.ts +43 -52
  107. package/src/swaps/{frombtcln_trusted → trusted/frombtcln_trusted}/FromBtcLnTrustedSwap.ts +20 -8
  108. package/src/utils/Utils.ts +27 -1
  109. package/src/wallets/IBitcoinWallet.ts +4 -0
  110. package/src/wallets/ISpvVaultSigner.ts +11 -0
  111. package/dist/swaps/FromBtcLnBaseSwapHandler.d.ts +0 -26
  112. package/dist/swaps/FromBtcLnBaseSwapHandler.js +0 -46
  113. package/dist/swaps/ToBtcBaseSwapHandler.d.ts +0 -95
  114. package/src/swaps/FromBtcLnBaseSwapHandler.ts +0 -63
  115. /package/dist/{swaps → prices}/ISwapPrice.d.ts +0 -0
  116. /package/dist/swaps/{frombtc_abstract → escrow/frombtc_abstract}/FromBtcSwapAbs.d.ts +0 -0
  117. /package/dist/swaps/{frombtcln_abstract → escrow/frombtcln_abstract}/FromBtcLnSwapAbs.d.ts +0 -0
  118. /package/dist/swaps/{tobtc_abstract → escrow/tobtc_abstract}/ToBtcSwapAbs.d.ts +0 -0
  119. /package/dist/swaps/{tobtcln_abstract → escrow/tobtcln_abstract}/ToBtcLnSwapAbs.d.ts +0 -0
@@ -0,0 +1,207 @@
1
+ import {SwapHandlerSwap} from "../SwapHandlerSwap";
2
+ import {SpvVault} from "./SpvVault";
3
+ import {deserializeBN, serializeBN} from "../../utils/Utils";
4
+ import {SwapHandlerType} from "../SwapHandler";
5
+
6
+ export enum SpvVaultSwapState {
7
+ FAILED = -3,
8
+ DOUBLE_SPENT = -2,
9
+ EXPIRED = -1,
10
+ CREATED = 0,
11
+ SIGNED = 1,
12
+ SENT = 2,
13
+ BTC_CONFIRMED = 3,
14
+ CLAIMED = 4
15
+ }
16
+
17
+ export class SpvVaultSwap extends SwapHandlerSwap<SpvVaultSwapState> {
18
+
19
+ readonly quoteId: string;
20
+
21
+ readonly vaultOwner: string;
22
+ readonly vaultId: bigint;
23
+ readonly vaultUtxo: string;
24
+ readonly vaultAddress: string;
25
+
26
+ readonly expiry: number;
27
+
28
+ readonly tokenSwapFee: bigint;
29
+ readonly tokenSwapFeeInToken: bigint;
30
+ readonly gasSwapFee: bigint;
31
+ readonly gasSwapFeeInToken: bigint;
32
+
33
+ readonly btcFeeRate: number;
34
+ readonly btcAddress: string;
35
+ readonly recipient: string;
36
+ readonly amountBtc: bigint;
37
+ readonly amountToken: bigint;
38
+ readonly amountGasToken: bigint;
39
+ readonly rawAmountToken: bigint;
40
+ readonly rawAmountGasToken: bigint;
41
+ readonly callerFeeShare: bigint;
42
+ readonly frontingFeeShare: bigint;
43
+ readonly executionFeeShare: bigint;
44
+
45
+ readonly token: string;
46
+ readonly gasToken: string;
47
+
48
+ btcTxId: string;
49
+
50
+ constructor(
51
+ chainIdentifier: string, quoteId: string, expiry: number,
52
+ vault: SpvVault, vaultUtxo: string,
53
+ btcAddress: string, btcFeeRate: number, recipient: string, amountBtc: bigint, amountToken: bigint, amountGasToken: bigint,
54
+ swapFee: bigint, swapFeeInToken: bigint,
55
+ gasSwapFee: bigint, gasSwapFeeInToken: bigint,
56
+ callerFeeShare: bigint, frontingFeeShare: bigint, executionFeeShare: bigint,
57
+ token: string, gasToken: string
58
+ );
59
+ constructor(data: any);
60
+ constructor(
61
+ chainIdentifierOrObj: string | any, quoteId?: string, expiry?: number,
62
+ vault?: SpvVault, vaultUtxo?: string,
63
+ btcAddress?: string, btcFeeRate?: number, recipient?: string, amountBtc?: bigint, amountToken?: bigint, amountGasToken?: bigint,
64
+ swapFee?: bigint, swapFeeInToken?: bigint,
65
+ gasSwapFee?: bigint, gasSwapFeeInToken?: bigint,
66
+ callerFeeShare?: bigint, frontingFeeShare?: bigint, executionFeeShare?: bigint,
67
+ token?: string, gasToken?: string
68
+ ) {
69
+ if(typeof(chainIdentifierOrObj)==="string") {
70
+ super(chainIdentifierOrObj, swapFee + gasSwapFee, swapFeeInToken * (swapFee + gasSwapFee) / swapFee);
71
+ this.state = SpvVaultSwapState.CREATED;
72
+ this.quoteId = quoteId;
73
+ this.expiry = expiry;
74
+ this.vaultOwner = vault.data.getOwner();
75
+ this.vaultId = vault.data.getVaultId();
76
+ this.vaultAddress = vault.btcAddress;
77
+ this.vaultUtxo = vaultUtxo;
78
+ this.tokenSwapFee = swapFee;
79
+ this.tokenSwapFeeInToken = swapFeeInToken;
80
+ this.gasSwapFee = gasSwapFee;
81
+ this.gasSwapFeeInToken = gasSwapFeeInToken;
82
+ this.btcFeeRate = btcFeeRate;
83
+ this.btcAddress = btcAddress;
84
+ this.recipient = recipient;
85
+ this.amountBtc = amountBtc;
86
+ this.amountToken = amountToken;
87
+ this.amountGasToken = amountGasToken;
88
+ const [rawAmountToken, rawAmountGasToken] = vault.toRawAmounts([amountToken, amountGasToken]);
89
+ this.rawAmountToken = rawAmountToken;
90
+ this.rawAmountGasToken = rawAmountGasToken;
91
+ this.callerFeeShare = callerFeeShare;
92
+ this.frontingFeeShare = frontingFeeShare;
93
+ this.executionFeeShare = executionFeeShare;
94
+ this.token = token;
95
+ this.gasToken = gasToken;
96
+ } else {
97
+ super(chainIdentifierOrObj);
98
+ this.quoteId = chainIdentifierOrObj.quoteId;
99
+ this.expiry = chainIdentifierOrObj.expiry;
100
+ this.vaultOwner = chainIdentifierOrObj.owner;
101
+ this.vaultId = deserializeBN(chainIdentifierOrObj.vaultId);
102
+ this.vaultAddress = chainIdentifierOrObj.vaultAddress;
103
+ this.vaultUtxo = chainIdentifierOrObj.vaultUtxo;
104
+ this.tokenSwapFee = deserializeBN(chainIdentifierOrObj.swapFee);
105
+ this.tokenSwapFeeInToken = deserializeBN(chainIdentifierOrObj.swapFeeInToken);
106
+ this.gasSwapFee = deserializeBN(chainIdentifierOrObj.gasSwapFee);
107
+ this.gasSwapFeeInToken = deserializeBN(chainIdentifierOrObj.gasSwapFeeInToken);
108
+ this.btcFeeRate = chainIdentifierOrObj.btcFeeRate;
109
+ this.btcAddress = chainIdentifierOrObj.btcAddress;
110
+ this.recipient = chainIdentifierOrObj.recipient;
111
+ this.amountBtc = deserializeBN(chainIdentifierOrObj.amountBtc);
112
+ this.amountToken = deserializeBN(chainIdentifierOrObj.amountToken);
113
+ this.amountGasToken = deserializeBN(chainIdentifierOrObj.amountGasToken);
114
+ this.rawAmountToken = deserializeBN(chainIdentifierOrObj.rawAmountToken);
115
+ this.rawAmountGasToken = deserializeBN(chainIdentifierOrObj.rawAmountGasToken);
116
+ this.callerFeeShare = deserializeBN(chainIdentifierOrObj.callerFeeShare);
117
+ this.frontingFeeShare = deserializeBN(chainIdentifierOrObj.frontingFeeShare);
118
+ this.executionFeeShare = deserializeBN(chainIdentifierOrObj.executionFeeShare);
119
+ this.token = chainIdentifierOrObj.token;
120
+ this.gasToken = chainIdentifierOrObj.gasToken;
121
+ this.btcTxId = chainIdentifierOrObj.btcTxId;
122
+ }
123
+ this.type = SwapHandlerType.FROM_BTC_SPV;
124
+ }
125
+
126
+ serialize(): any {
127
+ return {
128
+ ...super.serialize(),
129
+ quoteId: this.quoteId,
130
+ owner: this.vaultOwner,
131
+ vaultId: serializeBN(this.vaultId),
132
+ vaultAddress: this.vaultAddress,
133
+ vaultUtxo: this.vaultUtxo,
134
+ tokenSwapFee: serializeBN(this.tokenSwapFee),
135
+ tokenSwapFeeInToken: serializeBN(this.tokenSwapFeeInToken),
136
+ gasSwapFee: serializeBN(this.gasSwapFee),
137
+ gasSwapFeeInToken: serializeBN(this.gasSwapFeeInToken),
138
+ btcFeeRate: this.btcFeeRate,
139
+ btcAddress: this.btcAddress,
140
+ recipient: this.recipient,
141
+ amountBtc: serializeBN(this.amountBtc),
142
+ amountToken: serializeBN(this.amountToken),
143
+ amountGasToken: serializeBN(this.amountGasToken),
144
+ rawAmountToken: serializeBN(this.rawAmountToken),
145
+ rawAmountGasToken: serializeBN(this.rawAmountGasToken),
146
+ callerFeeShare: serializeBN(this.callerFeeShare),
147
+ frontingFeeShare: serializeBN(this.frontingFeeShare),
148
+ executionFeeShare: serializeBN(this.executionFeeShare),
149
+ token: this.token,
150
+ gasToken: this.gasToken,
151
+ btcTxId: this.btcTxId
152
+ };
153
+ }
154
+
155
+ getIdentifierHash(): string {
156
+ return this.quoteId;
157
+ }
158
+
159
+ getOutputGasAmount(): bigint {
160
+ return this.amountGasToken;
161
+ }
162
+
163
+ getOutputAmount(): bigint {
164
+ return this.amountToken;
165
+ }
166
+
167
+ getSequence(): bigint | null {
168
+ return 0n;
169
+ }
170
+
171
+ getSwapFee(): { inInputToken: bigint; inOutputToken: bigint } {
172
+ return {inInputToken: this.swapFee, inOutputToken: this.swapFeeInToken};
173
+ }
174
+
175
+ getTokenSwapFee(): { inInputToken: bigint; inOutputToken: bigint } {
176
+ return {inInputToken: this.tokenSwapFee, inOutputToken: this.tokenSwapFeeInToken};
177
+ }
178
+
179
+ getGasSwapFee(): { inInputToken: bigint; inOutputToken: bigint } {
180
+ return {inInputToken: this.gasSwapFee, inOutputToken: this.gasSwapFeeInToken};
181
+ }
182
+
183
+ getToken(): string {
184
+ return this.token;
185
+ }
186
+
187
+ getGasToken(): string {
188
+ return this.gasToken;
189
+ }
190
+
191
+ getTotalInputAmount(): bigint {
192
+ return this.amountBtc;
193
+ }
194
+
195
+ isFailed(): boolean {
196
+ return this.state===SpvVaultSwapState.FAILED || this.state===SpvVaultSwapState.DOUBLE_SPENT;
197
+ }
198
+
199
+ isInitiated(): boolean {
200
+ return this.state!==SpvVaultSwapState.CREATED;
201
+ }
202
+
203
+ isSuccess(): boolean {
204
+ return this.state===SpvVaultSwapState.CLAIMED;
205
+ }
206
+
207
+ }