@atomiqlabs/lp-lib 10.3.11

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 (138) hide show
  1. package/LICENSE +201 -0
  2. package/dist/fees/IBtcFeeEstimator.d.ts +3 -0
  3. package/dist/fees/IBtcFeeEstimator.js +2 -0
  4. package/dist/fees/OneDollarFeeEstimator.d.ts +16 -0
  5. package/dist/fees/OneDollarFeeEstimator.js +71 -0
  6. package/dist/index.d.ts +33 -0
  7. package/dist/index.js +52 -0
  8. package/dist/info/InfoHandler.d.ts +17 -0
  9. package/dist/info/InfoHandler.js +70 -0
  10. package/dist/plugins/IPlugin.d.ts +118 -0
  11. package/dist/plugins/IPlugin.js +33 -0
  12. package/dist/plugins/PluginManager.d.ts +89 -0
  13. package/dist/plugins/PluginManager.js +263 -0
  14. package/dist/prices/BinanceSwapPrice.d.ts +27 -0
  15. package/dist/prices/BinanceSwapPrice.js +106 -0
  16. package/dist/prices/CoinGeckoSwapPrice.d.ts +31 -0
  17. package/dist/prices/CoinGeckoSwapPrice.js +76 -0
  18. package/dist/storage/IIntermediaryStorage.d.ts +15 -0
  19. package/dist/storage/IIntermediaryStorage.js +2 -0
  20. package/dist/storagemanager/IntermediaryStorageManager.d.ts +15 -0
  21. package/dist/storagemanager/IntermediaryStorageManager.js +113 -0
  22. package/dist/storagemanager/StorageManager.d.ts +12 -0
  23. package/dist/storagemanager/StorageManager.js +74 -0
  24. package/dist/swaps/FromBtcBaseSwap.d.ts +12 -0
  25. package/dist/swaps/FromBtcBaseSwap.js +16 -0
  26. package/dist/swaps/FromBtcBaseSwapHandler.d.ts +118 -0
  27. package/dist/swaps/FromBtcBaseSwapHandler.js +294 -0
  28. package/dist/swaps/FromBtcLnBaseSwapHandler.d.ts +25 -0
  29. package/dist/swaps/FromBtcLnBaseSwapHandler.js +55 -0
  30. package/dist/swaps/ISwapPrice.d.ts +44 -0
  31. package/dist/swaps/ISwapPrice.js +73 -0
  32. package/dist/swaps/SwapHandler.d.ts +186 -0
  33. package/dist/swaps/SwapHandler.js +292 -0
  34. package/dist/swaps/SwapHandlerSwap.d.ts +75 -0
  35. package/dist/swaps/SwapHandlerSwap.js +72 -0
  36. package/dist/swaps/ToBtcBaseSwap.d.ts +35 -0
  37. package/dist/swaps/ToBtcBaseSwap.js +61 -0
  38. package/dist/swaps/ToBtcBaseSwapHandler.d.ts +94 -0
  39. package/dist/swaps/ToBtcBaseSwapHandler.js +233 -0
  40. package/dist/swaps/frombtc_abstract/FromBtcAbs.d.ts +92 -0
  41. package/dist/swaps/frombtc_abstract/FromBtcAbs.js +386 -0
  42. package/dist/swaps/frombtc_abstract/FromBtcSwapAbs.d.ts +26 -0
  43. package/dist/swaps/frombtc_abstract/FromBtcSwapAbs.js +63 -0
  44. package/dist/swaps/frombtc_trusted/FromBtcTrusted.d.ts +55 -0
  45. package/dist/swaps/frombtc_trusted/FromBtcTrusted.js +586 -0
  46. package/dist/swaps/frombtc_trusted/FromBtcTrustedSwap.d.ts +43 -0
  47. package/dist/swaps/frombtc_trusted/FromBtcTrustedSwap.js +99 -0
  48. package/dist/swaps/frombtcln_abstract/FromBtcLnAbs.d.ts +105 -0
  49. package/dist/swaps/frombtcln_abstract/FromBtcLnAbs.js +731 -0
  50. package/dist/swaps/frombtcln_abstract/FromBtcLnSwapAbs.d.ts +29 -0
  51. package/dist/swaps/frombtcln_abstract/FromBtcLnSwapAbs.js +64 -0
  52. package/dist/swaps/frombtcln_trusted/FromBtcLnTrusted.d.ts +79 -0
  53. package/dist/swaps/frombtcln_trusted/FromBtcLnTrusted.js +514 -0
  54. package/dist/swaps/frombtcln_trusted/FromBtcLnTrustedSwap.d.ts +28 -0
  55. package/dist/swaps/frombtcln_trusted/FromBtcLnTrustedSwap.js +66 -0
  56. package/dist/swaps/tobtc_abstract/ToBtcAbs.d.ts +290 -0
  57. package/dist/swaps/tobtc_abstract/ToBtcAbs.js +1056 -0
  58. package/dist/swaps/tobtc_abstract/ToBtcSwapAbs.d.ts +29 -0
  59. package/dist/swaps/tobtc_abstract/ToBtcSwapAbs.js +70 -0
  60. package/dist/swaps/tobtcln_abstract/ToBtcLnAbs.d.ts +246 -0
  61. package/dist/swaps/tobtcln_abstract/ToBtcLnAbs.js +1169 -0
  62. package/dist/swaps/tobtcln_abstract/ToBtcLnSwapAbs.d.ts +27 -0
  63. package/dist/swaps/tobtcln_abstract/ToBtcLnSwapAbs.js +65 -0
  64. package/dist/utils/Utils.d.ts +32 -0
  65. package/dist/utils/Utils.js +109 -0
  66. package/dist/utils/coinselect2/accumulative.d.ts +6 -0
  67. package/dist/utils/coinselect2/accumulative.js +44 -0
  68. package/dist/utils/coinselect2/blackjack.d.ts +6 -0
  69. package/dist/utils/coinselect2/blackjack.js +41 -0
  70. package/dist/utils/coinselect2/index.d.ts +16 -0
  71. package/dist/utils/coinselect2/index.js +40 -0
  72. package/dist/utils/coinselect2/utils.d.ts +64 -0
  73. package/dist/utils/coinselect2/utils.js +121 -0
  74. package/dist/utils/paramcoders/IParamReader.d.ts +5 -0
  75. package/dist/utils/paramcoders/IParamReader.js +2 -0
  76. package/dist/utils/paramcoders/IParamWriter.d.ts +4 -0
  77. package/dist/utils/paramcoders/IParamWriter.js +2 -0
  78. package/dist/utils/paramcoders/LegacyParamEncoder.d.ts +10 -0
  79. package/dist/utils/paramcoders/LegacyParamEncoder.js +33 -0
  80. package/dist/utils/paramcoders/ParamDecoder.d.ts +25 -0
  81. package/dist/utils/paramcoders/ParamDecoder.js +234 -0
  82. package/dist/utils/paramcoders/ParamEncoder.d.ts +9 -0
  83. package/dist/utils/paramcoders/ParamEncoder.js +22 -0
  84. package/dist/utils/paramcoders/SchemaVerifier.d.ts +22 -0
  85. package/dist/utils/paramcoders/SchemaVerifier.js +85 -0
  86. package/dist/utils/paramcoders/server/ServerParamDecoder.d.ts +8 -0
  87. package/dist/utils/paramcoders/server/ServerParamDecoder.js +105 -0
  88. package/dist/utils/paramcoders/server/ServerParamEncoder.d.ts +11 -0
  89. package/dist/utils/paramcoders/server/ServerParamEncoder.js +76 -0
  90. package/package.json +43 -0
  91. package/src/fees/IBtcFeeEstimator.ts +7 -0
  92. package/src/fees/OneDollarFeeEstimator.ts +95 -0
  93. package/src/index.ts +46 -0
  94. package/src/info/InfoHandler.ts +106 -0
  95. package/src/plugins/IPlugin.ts +155 -0
  96. package/src/plugins/PluginManager.ts +310 -0
  97. package/src/prices/BinanceSwapPrice.ts +114 -0
  98. package/src/prices/CoinGeckoSwapPrice.ts +88 -0
  99. package/src/storage/IIntermediaryStorage.ts +21 -0
  100. package/src/storagemanager/IntermediaryStorageManager.ts +101 -0
  101. package/src/storagemanager/StorageManager.ts +68 -0
  102. package/src/swaps/FromBtcBaseSwap.ts +21 -0
  103. package/src/swaps/FromBtcBaseSwapHandler.ts +375 -0
  104. package/src/swaps/FromBtcLnBaseSwapHandler.ts +48 -0
  105. package/src/swaps/ISwapPrice.ts +94 -0
  106. package/src/swaps/SwapHandler.ts +404 -0
  107. package/src/swaps/SwapHandlerSwap.ts +133 -0
  108. package/src/swaps/ToBtcBaseSwap.ts +76 -0
  109. package/src/swaps/ToBtcBaseSwapHandler.ts +309 -0
  110. package/src/swaps/frombtc_abstract/FromBtcAbs.ts +484 -0
  111. package/src/swaps/frombtc_abstract/FromBtcSwapAbs.ts +77 -0
  112. package/src/swaps/frombtc_trusted/FromBtcTrusted.ts +661 -0
  113. package/src/swaps/frombtc_trusted/FromBtcTrustedSwap.ts +158 -0
  114. package/src/swaps/frombtcln_abstract/FromBtcLnAbs.ts +864 -0
  115. package/src/swaps/frombtcln_abstract/FromBtcLnSwapAbs.ts +82 -0
  116. package/src/swaps/frombtcln_trusted/FromBtcLnTrusted.ts +592 -0
  117. package/src/swaps/frombtcln_trusted/FromBtcLnTrustedSwap.ts +90 -0
  118. package/src/swaps/tobtc_abstract/ToBtcAbs.ts +1249 -0
  119. package/src/swaps/tobtc_abstract/ToBtcSwapAbs.ts +112 -0
  120. package/src/swaps/tobtcln_abstract/ToBtcLnAbs.ts +1422 -0
  121. package/src/swaps/tobtcln_abstract/ToBtcLnSwapAbs.ts +87 -0
  122. package/src/utils/Utils.ts +108 -0
  123. package/src/utils/coinselect2/accumulative.js +32 -0
  124. package/src/utils/coinselect2/accumulative.ts +58 -0
  125. package/src/utils/coinselect2/blackjack.js +29 -0
  126. package/src/utils/coinselect2/blackjack.ts +54 -0
  127. package/src/utils/coinselect2/index.js +16 -0
  128. package/src/utils/coinselect2/index.ts +50 -0
  129. package/src/utils/coinselect2/utils.js +110 -0
  130. package/src/utils/coinselect2/utils.ts +183 -0
  131. package/src/utils/paramcoders/IParamReader.ts +8 -0
  132. package/src/utils/paramcoders/IParamWriter.ts +8 -0
  133. package/src/utils/paramcoders/LegacyParamEncoder.ts +28 -0
  134. package/src/utils/paramcoders/ParamDecoder.ts +219 -0
  135. package/src/utils/paramcoders/ParamEncoder.ts +30 -0
  136. package/src/utils/paramcoders/SchemaVerifier.ts +97 -0
  137. package/src/utils/paramcoders/server/ServerParamDecoder.ts +115 -0
  138. package/src/utils/paramcoders/server/ServerParamEncoder.ts +76 -0
@@ -0,0 +1,158 @@
1
+ import {SwapData} from "@atomiqlabs/base";
2
+ import {FromBtcBaseSwap} from "../FromBtcBaseSwap";
3
+ import * as BN from "bn.js";
4
+ import {deserializeBN, serializeBN} from "../../utils/Utils";
5
+ import {createHash} from "crypto";
6
+
7
+
8
+ export enum FromBtcTrustedSwapState {
9
+ DOUBLE_SPENT = -3,
10
+ REFUNDED = -2,
11
+ EXPIRED = -1,
12
+ CREATED = 0,
13
+ RECEIVED = 1,
14
+ BTC_CONFIRMED = 2,
15
+ SENT = 3,
16
+ CONFIRMED = 4,
17
+ FINISHED = 5
18
+ }
19
+
20
+ export class FromBtcTrustedSwap<T extends SwapData = SwapData> extends FromBtcBaseSwap<T, FromBtcTrustedSwapState> {
21
+
22
+ readonly btcAddress: string;
23
+ readonly inputSats: BN;
24
+
25
+ readonly dstAddress: string;
26
+ readonly outputTokens: BN;
27
+
28
+ readonly createdHeight: number;
29
+ readonly expiresAt: number;
30
+ readonly recommendedFee: number;
31
+ readonly refundAddress: string;
32
+
33
+ adjustedInput: BN;
34
+ adjustedOutput: BN;
35
+
36
+ doubleSpent: boolean;
37
+ scRawTx: string;
38
+
39
+ rawTx: string;
40
+ txId: string;
41
+ vout: number;
42
+
43
+ burnTxId: string;
44
+ refundTxId: string;
45
+
46
+ constructor(
47
+ chainIdentifier: string,
48
+ swapFee: BN,
49
+ swapFeeInToken: BN,
50
+ btcAddress: string,
51
+ inputSats: BN,
52
+ dstAddress: string,
53
+ outputTokens: BN,
54
+ createdHeight: number,
55
+ expiresAt: number,
56
+ recommendedFee: number,
57
+ refundAddress: string
58
+ );
59
+ constructor(obj: any);
60
+
61
+ constructor(
62
+ objOrChainIdentifier: any | string,
63
+ swapFee?: BN,
64
+ swapFeeInToken?: BN,
65
+ btcAddress?: string,
66
+ inputSats?: BN,
67
+ dstAddress?: string,
68
+ outputTokens?: BN,
69
+ createdHeight?: number,
70
+ expiresAt?: number,
71
+ recommendedFee?: number,
72
+ refundAddress?: string
73
+ ) {
74
+ if(typeof(objOrChainIdentifier)==="string") {
75
+ super(objOrChainIdentifier, swapFee, swapFeeInToken);
76
+ this.state = FromBtcTrustedSwapState.CREATED;
77
+ this.doubleSpent = false;
78
+ this.btcAddress = btcAddress;
79
+ this.inputSats = inputSats;
80
+ this.dstAddress = dstAddress;
81
+ this.outputTokens = outputTokens;
82
+ this.createdHeight = createdHeight;
83
+ this.expiresAt = expiresAt;
84
+ this.recommendedFee = recommendedFee;
85
+ this.refundAddress = refundAddress;
86
+ } else {
87
+ super(objOrChainIdentifier);
88
+ this.btcAddress = objOrChainIdentifier.btcAddress;
89
+ this.inputSats = deserializeBN(objOrChainIdentifier.inputSats);
90
+ this.dstAddress = objOrChainIdentifier.dstAddress;
91
+ this.outputTokens = deserializeBN(objOrChainIdentifier.outputTokens);
92
+ this.adjustedInput = deserializeBN(objOrChainIdentifier.adjustedInput);
93
+ this.adjustedOutput = deserializeBN(objOrChainIdentifier.adjustedOutput);
94
+ this.createdHeight = objOrChainIdentifier.createdHeight;
95
+ this.expiresAt = objOrChainIdentifier.expiresAt;
96
+ this.recommendedFee = objOrChainIdentifier.recommendedFee;
97
+ this.refundAddress = objOrChainIdentifier.refundAddress;
98
+ this.doubleSpent = objOrChainIdentifier.doubleSpent;
99
+ this.scRawTx = objOrChainIdentifier.scRawTx;
100
+ this.rawTx = objOrChainIdentifier.rawTx;
101
+ this.txId = objOrChainIdentifier.txId;
102
+ this.vout = objOrChainIdentifier.vout;
103
+ this.burnTxId = objOrChainIdentifier.burnTxId;
104
+ this.refundTxId = objOrChainIdentifier.refundTxId;
105
+ }
106
+ }
107
+
108
+ serialize(): any {
109
+ const partialSerialized = super.serialize();
110
+ partialSerialized.btcAddress = this.btcAddress;
111
+ partialSerialized.inputSats = serializeBN(this.inputSats);
112
+ partialSerialized.dstAddress = this.dstAddress;
113
+ partialSerialized.outputTokens = serializeBN(this.outputTokens);
114
+ partialSerialized.adjustedInput = serializeBN(this.adjustedInput);
115
+ partialSerialized.adjustedOutput = serializeBN(this.adjustedOutput);
116
+ partialSerialized.createdHeight = this.createdHeight;
117
+ partialSerialized.expiresAt = this.expiresAt;
118
+ partialSerialized.recommendedFee = this.recommendedFee;
119
+ partialSerialized.refundAddress = this.refundAddress;
120
+ partialSerialized.doubleSpent = this.doubleSpent;
121
+ partialSerialized.scRawTx = this.scRawTx;
122
+ partialSerialized.rawTx = this.rawTx;
123
+ partialSerialized.txId = this.txId;
124
+ partialSerialized.vout = this.vout;
125
+ partialSerialized.burnTxId = this.burnTxId;
126
+ partialSerialized.refundTxId = this.refundTxId;
127
+ return partialSerialized;
128
+ }
129
+
130
+ getHash(): string {
131
+ return createHash("sha256").update(this.btcAddress).digest().toString("hex");
132
+ }
133
+
134
+ getSequence(): BN {
135
+ return new BN(0);
136
+ }
137
+
138
+ getOutputAmount(): BN {
139
+ return this.adjustedOutput || this.outputTokens;
140
+ }
141
+
142
+ getTotalInputAmount(): BN {
143
+ return this.adjustedInput || this.inputSats;
144
+ }
145
+
146
+ isFailed(): boolean {
147
+ return this.state===FromBtcTrustedSwapState.EXPIRED || this.state===FromBtcTrustedSwapState.REFUNDED || this.state===FromBtcTrustedSwapState.DOUBLE_SPENT;
148
+ }
149
+
150
+ isInitiated(): boolean {
151
+ return this.state!==FromBtcTrustedSwapState.CREATED;
152
+ }
153
+
154
+ isSuccess(): boolean {
155
+ return this.state===FromBtcTrustedSwapState.CONFIRMED;
156
+ }
157
+
158
+ }