@atomiqlabs/chain-starknet 2.0.0-beta.8 → 2.0.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 (146) hide show
  1. package/LICENSE +201 -201
  2. package/dist/index.d.ts +38 -38
  3. package/dist/index.js +54 -54
  4. package/dist/starknet/StarknetChainType.d.ts +13 -13
  5. package/dist/starknet/StarknetChainType.js +2 -2
  6. package/dist/starknet/StarknetInitializer.d.ts +19 -19
  7. package/dist/starknet/StarknetInitializer.js +64 -64
  8. package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
  9. package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
  10. package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +186 -186
  11. package/dist/starknet/btcrelay/StarknetBtcRelay.js +379 -379
  12. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +31 -31
  13. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +74 -74
  14. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +51 -51
  15. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +113 -113
  16. package/dist/starknet/chain/StarknetAction.d.ts +27 -27
  17. package/dist/starknet/chain/StarknetAction.js +73 -73
  18. package/dist/starknet/chain/StarknetChainInterface.d.ts +52 -52
  19. package/dist/starknet/chain/StarknetChainInterface.js +91 -91
  20. package/dist/starknet/chain/StarknetModule.d.ts +14 -14
  21. package/dist/starknet/chain/StarknetModule.js +13 -13
  22. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  23. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  24. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  25. package/dist/starknet/chain/modules/StarknetAccounts.js +24 -24
  26. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +9 -9
  27. package/dist/starknet/chain/modules/StarknetAddresses.js +26 -26
  28. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +19 -19
  29. package/dist/starknet/chain/modules/StarknetBlocks.js +49 -49
  30. package/dist/starknet/chain/modules/StarknetEvents.d.ts +44 -44
  31. package/dist/starknet/chain/modules/StarknetEvents.js +88 -88
  32. package/dist/starknet/chain/modules/StarknetFees.d.ts +55 -55
  33. package/dist/starknet/chain/modules/StarknetFees.js +100 -102
  34. package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
  35. package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
  36. package/dist/starknet/chain/modules/StarknetTokens.d.ts +67 -67
  37. package/dist/starknet/chain/modules/StarknetTokens.js +98 -98
  38. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +93 -93
  39. package/dist/starknet/chain/modules/StarknetTransactions.js +255 -255
  40. package/dist/starknet/contract/StarknetContractBase.d.ts +13 -13
  41. package/dist/starknet/contract/StarknetContractBase.js +16 -16
  42. package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
  43. package/dist/starknet/contract/StarknetContractModule.js +11 -11
  44. package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +51 -51
  45. package/dist/starknet/contract/modules/StarknetContractEvents.js +97 -97
  46. package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
  47. package/dist/starknet/events/StarknetChainEvents.js +52 -52
  48. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +91 -91
  49. package/dist/starknet/events/StarknetChainEventsBrowser.js +294 -294
  50. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +21 -21
  51. package/dist/starknet/provider/RpcProviderWithRetries.js +32 -32
  52. package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
  53. package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
  54. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +65 -65
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +376 -376
  56. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +49 -49
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +144 -144
  58. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +24 -24
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +61 -61
  60. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +405 -405
  61. package/dist/starknet/swaps/EscrowManagerAbi.js +547 -547
  62. package/dist/starknet/swaps/StarknetSwapContract.d.ts +196 -196
  63. package/dist/starknet/swaps/StarknetSwapContract.js +395 -395
  64. package/dist/starknet/swaps/StarknetSwapData.d.ts +67 -67
  65. package/dist/starknet/swaps/StarknetSwapData.js +281 -281
  66. package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
  67. package/dist/starknet/swaps/StarknetSwapModule.js +11 -11
  68. package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
  69. package/dist/starknet/swaps/handlers/IHandler.js +2 -2
  70. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
  71. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
  72. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
  73. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
  74. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  75. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
  76. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  77. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
  78. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
  79. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
  80. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +45 -45
  81. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +52 -52
  82. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  83. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
  84. package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +69 -69
  85. package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
  86. package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +53 -53
  87. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +100 -100
  88. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +84 -84
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.js +164 -164
  90. package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +62 -62
  91. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +128 -128
  92. package/dist/starknet/wallet/StarknetKeypairWallet.d.ts +7 -7
  93. package/dist/starknet/wallet/StarknetKeypairWallet.js +30 -30
  94. package/dist/starknet/wallet/StarknetSigner.d.ts +12 -12
  95. package/dist/starknet/wallet/StarknetSigner.js +46 -46
  96. package/dist/utils/Utils.d.ts +37 -37
  97. package/dist/utils/Utils.js +257 -257
  98. package/package.json +37 -37
  99. package/src/index.ts +47 -47
  100. package/src/starknet/StarknetChainType.ts +28 -28
  101. package/src/starknet/StarknetInitializer.ts +95 -95
  102. package/src/starknet/btcrelay/BtcRelayAbi.ts +338 -338
  103. package/src/starknet/btcrelay/StarknetBtcRelay.ts +491 -491
  104. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +100 -100
  105. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +141 -141
  106. package/src/starknet/chain/StarknetAction.ts +90 -90
  107. package/src/starknet/chain/StarknetChainInterface.ts +149 -149
  108. package/src/starknet/chain/StarknetModule.ts +19 -19
  109. package/src/starknet/chain/modules/ERC20Abi.ts +1029 -1029
  110. package/src/starknet/chain/modules/StarknetAccounts.ts +25 -25
  111. package/src/starknet/chain/modules/StarknetAddresses.ts +22 -22
  112. package/src/starknet/chain/modules/StarknetBlocks.ts +58 -58
  113. package/src/starknet/chain/modules/StarknetEvents.ts +104 -104
  114. package/src/starknet/chain/modules/StarknetFees.ts +132 -135
  115. package/src/starknet/chain/modules/StarknetSignatures.ts +90 -90
  116. package/src/starknet/chain/modules/StarknetTokens.ts +116 -116
  117. package/src/starknet/chain/modules/StarknetTransactions.ts +278 -278
  118. package/src/starknet/contract/StarknetContractBase.ts +26 -26
  119. package/src/starknet/contract/StarknetContractModule.ts +16 -16
  120. package/src/starknet/contract/modules/StarknetContractEvents.ts +134 -134
  121. package/src/starknet/events/StarknetChainEvents.ts +67 -67
  122. package/src/starknet/events/StarknetChainEventsBrowser.ts +412 -412
  123. package/src/starknet/provider/RpcProviderWithRetries.ts +43 -43
  124. package/src/starknet/spv_swap/SpvVaultContractAbi.ts +656 -656
  125. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +477 -477
  126. package/src/starknet/spv_swap/StarknetSpvVaultData.ts +194 -194
  127. package/src/starknet/spv_swap/StarknetSpvWithdrawalData.ts +68 -68
  128. package/src/starknet/swaps/EscrowManagerAbi.ts +546 -546
  129. package/src/starknet/swaps/StarknetSwapContract.ts +605 -605
  130. package/src/starknet/swaps/StarknetSwapData.ts +394 -394
  131. package/src/starknet/swaps/StarknetSwapModule.ts +17 -17
  132. package/src/starknet/swaps/handlers/IHandler.ts +20 -20
  133. package/src/starknet/swaps/handlers/claim/ClaimHandlers.ts +23 -23
  134. package/src/starknet/swaps/handlers/claim/HashlockClaimHandler.ts +53 -53
  135. package/src/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +73 -73
  136. package/src/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +67 -67
  137. package/src/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +50 -50
  138. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +102 -102
  139. package/src/starknet/swaps/handlers/refund/TimelockRefundHandler.ts +38 -38
  140. package/src/starknet/swaps/modules/StarknetLpVault.ts +147 -147
  141. package/src/starknet/swaps/modules/StarknetSwapClaim.ts +141 -141
  142. package/src/starknet/swaps/modules/StarknetSwapInit.ts +225 -225
  143. package/src/starknet/swaps/modules/StarknetSwapRefund.ts +197 -197
  144. package/src/starknet/wallet/StarknetKeypairWallet.ts +39 -39
  145. package/src/starknet/wallet/StarknetSigner.ts +55 -55
  146. package/src/utils/Utils.ts +248 -248
@@ -1,281 +1,281 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetSwapData = void 0;
4
- const base_1 = require("@atomiqlabs/base");
5
- const TimelockRefundHandler_1 = require("./handlers/refund/TimelockRefundHandler");
6
- const starknet_1 = require("starknet");
7
- const Utils_1 = require("../../utils/Utils");
8
- const FLAG_PAY_OUT = 0x01n;
9
- const FLAG_PAY_IN = 0x02n;
10
- const FLAG_REPUTATION = 0x04n;
11
- class StarknetSwapData extends base_1.SwapData {
12
- static toFlags(value) {
13
- const val = (0, Utils_1.toBigInt)(value);
14
- return {
15
- sequence: val >> 64n,
16
- payOut: (val & FLAG_PAY_OUT) === FLAG_PAY_OUT,
17
- payIn: (val & FLAG_PAY_IN) === FLAG_PAY_IN,
18
- reputation: (val & FLAG_REPUTATION) === FLAG_REPUTATION
19
- };
20
- }
21
- getFlags() {
22
- return (this.sequence << 64n) +
23
- (this.payOut ? FLAG_PAY_OUT : 0n) +
24
- (this.payIn ? FLAG_PAY_IN : 0n) +
25
- (this.reputation ? FLAG_REPUTATION : 0n);
26
- }
27
- constructor(offererOrData, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, kind, extraData) {
28
- super();
29
- if (claimer != null || token != null || refundHandler != null || claimHandler != null ||
30
- payOut != null || payIn != null || reputation != null || sequence != null || claimData != null || refundData != null ||
31
- amount != null || feeToken != null || securityDeposit != null || claimerBounty != null) {
32
- this.offerer = offererOrData;
33
- this.claimer = claimer;
34
- this.token = token;
35
- this.refundHandler = refundHandler;
36
- this.claimHandler = claimHandler;
37
- this.payOut = payOut;
38
- this.payIn = payIn;
39
- this.reputation = reputation;
40
- this.sequence = sequence;
41
- this.claimData = claimData;
42
- this.refundData = refundData;
43
- this.amount = amount;
44
- this.feeToken = feeToken;
45
- this.securityDeposit = securityDeposit;
46
- this.claimerBounty = claimerBounty;
47
- this.kind = kind;
48
- this.extraData = extraData;
49
- }
50
- else {
51
- this.offerer = offererOrData.offerer;
52
- this.claimer = offererOrData.claimer;
53
- this.token = offererOrData.token;
54
- this.refundHandler = offererOrData.refundHandler;
55
- this.claimHandler = offererOrData.claimHandler;
56
- this.payOut = offererOrData.payOut;
57
- this.payIn = offererOrData.payIn;
58
- this.reputation = offererOrData.reputation;
59
- this.sequence = offererOrData.sequence == null ? null : BigInt(offererOrData.sequence);
60
- this.claimData = offererOrData.claimData;
61
- this.refundData = offererOrData.refundData;
62
- this.amount = offererOrData.amount == null ? null : BigInt(offererOrData.amount);
63
- this.feeToken = offererOrData.feeToken;
64
- this.securityDeposit = offererOrData.securityDeposit == null ? null : BigInt(offererOrData.securityDeposit);
65
- this.claimerBounty = offererOrData.claimerBounty == null ? null : BigInt(offererOrData.claimerBounty);
66
- this.kind = offererOrData.kind;
67
- this.extraData = offererOrData.extraData;
68
- }
69
- }
70
- getOfferer() {
71
- return this.offerer;
72
- }
73
- setOfferer(newOfferer) {
74
- this.offerer = newOfferer;
75
- this.payIn = true;
76
- }
77
- getClaimer() {
78
- return this.claimer;
79
- }
80
- setClaimer(newClaimer) {
81
- this.claimer = newClaimer;
82
- this.payIn = false;
83
- this.payOut = true;
84
- this.reputation = false;
85
- }
86
- serialize() {
87
- return {
88
- type: "strk",
89
- offerer: this.offerer,
90
- claimer: this.claimer,
91
- token: this.token,
92
- refundHandler: this.refundHandler,
93
- claimHandler: this.claimHandler,
94
- payOut: this.payOut,
95
- payIn: this.payIn,
96
- reputation: this.reputation,
97
- sequence: this.sequence == null ? null : this.sequence.toString(10),
98
- claimData: this.claimData,
99
- refundData: this.refundData,
100
- amount: this.amount == null ? null : this.amount.toString(10),
101
- feeToken: this.feeToken,
102
- securityDeposit: this.securityDeposit == null ? null : this.securityDeposit.toString(10),
103
- claimerBounty: this.claimerBounty == null ? null : this.claimerBounty.toString(10),
104
- kind: this.kind,
105
- extraData: this.extraData
106
- };
107
- }
108
- getAmount() {
109
- return this.amount;
110
- }
111
- getToken() {
112
- return this.token;
113
- }
114
- isToken(token) {
115
- return this.token.toLowerCase() === token.toLowerCase();
116
- }
117
- getType() {
118
- return this.kind;
119
- }
120
- getExpiry() {
121
- return TimelockRefundHandler_1.TimelockRefundHandler.getExpiry(this);
122
- }
123
- isPayIn() {
124
- return this.payIn;
125
- }
126
- isPayOut() {
127
- return this.payOut;
128
- }
129
- getEscrowHash() {
130
- const amountValue = starknet_1.cairo.uint256("0x" + this.amount.toString(16));
131
- const securityDepositValue = starknet_1.cairo.uint256("0x" + this.securityDeposit.toString(16));
132
- const claimerBountyValue = starknet_1.cairo.uint256("0x" + this.claimerBounty.toString(16));
133
- let escrowHash = starknet_1.hash.computePoseidonHashOnElements([
134
- this.offerer,
135
- this.claimer,
136
- this.token,
137
- this.refundHandler,
138
- this.claimHandler,
139
- this.getFlags(),
140
- this.claimData,
141
- this.refundData,
142
- amountValue.low,
143
- amountValue.high,
144
- this.feeToken,
145
- securityDepositValue.low,
146
- securityDepositValue.high,
147
- claimerBountyValue.low,
148
- claimerBountyValue.high
149
- ]);
150
- if (escrowHash.startsWith("0x"))
151
- escrowHash = escrowHash.slice(2);
152
- return escrowHash.padStart(64, "0");
153
- }
154
- getClaimHash() {
155
- let hash = this.claimData;
156
- if (hash.startsWith("0x"))
157
- hash = hash.slice(2);
158
- return hash.padStart(64, "0");
159
- }
160
- getSequence() {
161
- return this.sequence;
162
- }
163
- getConfirmationsHint() {
164
- if (this.extraData == null)
165
- return null;
166
- if (this.extraData.length != 84)
167
- return null;
168
- return parseInt(this.extraData.slice(80), 16);
169
- }
170
- getNonceHint() {
171
- if (this.extraData == null)
172
- return null;
173
- if (this.extraData.length != 84)
174
- return null;
175
- return BigInt("0x" + this.extraData.slice(64, 80));
176
- }
177
- getTxoHashHint() {
178
- if (this.extraData == null)
179
- return null;
180
- if (this.extraData.length != 84)
181
- return null;
182
- return this.extraData.slice(0, 64);
183
- }
184
- getExtraData() {
185
- return this.extraData;
186
- }
187
- setExtraData(extraData) {
188
- this.extraData = extraData;
189
- }
190
- getSecurityDeposit() {
191
- return this.securityDeposit;
192
- }
193
- getClaimerBounty() {
194
- return this.claimerBounty;
195
- }
196
- getTotalDeposit() {
197
- return this.claimerBounty < this.securityDeposit ? this.securityDeposit : this.claimerBounty;
198
- }
199
- getDepositToken() {
200
- return this.feeToken;
201
- }
202
- isDepositToken(token) {
203
- if (!token.startsWith("0x"))
204
- token = "0x" + token;
205
- return (0, Utils_1.toHex)(this.feeToken) === (0, Utils_1.toHex)(token);
206
- }
207
- isClaimer(address) {
208
- if (!address.startsWith("0x"))
209
- address = "0x" + address;
210
- return (0, Utils_1.toHex)(this.claimer) === (0, Utils_1.toHex)(address);
211
- }
212
- isOfferer(address) {
213
- if (!address.startsWith("0x"))
214
- address = "0x" + address;
215
- return (0, Utils_1.toHex)(this.offerer) === (0, Utils_1.toHex)(address);
216
- }
217
- isRefundHandler(address) {
218
- if (!address.startsWith("0x"))
219
- address = "0x" + address;
220
- return (0, Utils_1.toHex)(this.refundHandler) === (0, Utils_1.toHex)(address);
221
- }
222
- isClaimHandler(address) {
223
- if (!address.startsWith("0x"))
224
- address = "0x" + address;
225
- return (0, Utils_1.toHex)(this.claimHandler) === (0, Utils_1.toHex)(address);
226
- }
227
- isClaimData(data) {
228
- if (!data.startsWith("0x"))
229
- data = "0x" + data;
230
- return (0, Utils_1.toHex)(this.claimData) === (0, Utils_1.toHex)(data);
231
- }
232
- equals(other) {
233
- return other.offerer.toLowerCase() === this.offerer.toLowerCase() &&
234
- other.claimer.toLowerCase() === this.claimer.toLowerCase() &&
235
- other.token.toLowerCase() === this.token.toLowerCase() &&
236
- other.refundHandler.toLowerCase() === this.refundHandler.toLowerCase() &&
237
- other.claimHandler.toLowerCase() === this.claimHandler.toLowerCase() &&
238
- other.payIn === this.payIn &&
239
- other.payOut === this.payOut &&
240
- other.reputation === this.reputation &&
241
- this.sequence === other.sequence &&
242
- other.claimData.toLowerCase() === this.claimData.toLowerCase() &&
243
- other.refundData.toLowerCase() === this.refundData.toLowerCase() &&
244
- other.amount === this.amount &&
245
- other.securityDeposit === this.securityDeposit &&
246
- other.claimerBounty === this.claimerBounty;
247
- }
248
- toEscrowStruct() {
249
- return {
250
- offerer: this.offerer,
251
- claimer: this.claimer,
252
- token: this.token,
253
- refund_handler: this.refundHandler,
254
- claim_handler: this.claimHandler,
255
- flags: this.getFlags(),
256
- claim_data: this.claimData,
257
- refund_data: this.refundData,
258
- amount: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.amount)),
259
- fee_token: this.feeToken,
260
- security_deposit: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.securityDeposit)),
261
- claimer_bounty: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.claimerBounty))
262
- };
263
- }
264
- static fromSerializedFeltArray(span, claimHandlerImpl) {
265
- const offerer = (0, Utils_1.toHex)(span.shift());
266
- const claimer = (0, Utils_1.toHex)(span.shift());
267
- const token = (0, Utils_1.toHex)(span.shift());
268
- const refundHandler = (0, Utils_1.toHex)(span.shift());
269
- const claimHandler = (0, Utils_1.toHex)(span.shift());
270
- const { payOut, payIn, reputation, sequence } = StarknetSwapData.toFlags(span.shift());
271
- const claimData = (0, Utils_1.toHex)(span.shift());
272
- const refundData = (0, Utils_1.toHex)(span.shift());
273
- const amount = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
274
- const feeToken = (0, Utils_1.toHex)(span.shift());
275
- const securityDeposit = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
276
- const claimerBounty = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
277
- return new StarknetSwapData(offerer, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, claimHandlerImpl.getType(), null);
278
- }
279
- }
280
- exports.StarknetSwapData = StarknetSwapData;
281
- base_1.SwapData.deserializers["strk"] = StarknetSwapData;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetSwapData = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
5
+ const TimelockRefundHandler_1 = require("./handlers/refund/TimelockRefundHandler");
6
+ const starknet_1 = require("starknet");
7
+ const Utils_1 = require("../../utils/Utils");
8
+ const FLAG_PAY_OUT = 0x01n;
9
+ const FLAG_PAY_IN = 0x02n;
10
+ const FLAG_REPUTATION = 0x04n;
11
+ class StarknetSwapData extends base_1.SwapData {
12
+ static toFlags(value) {
13
+ const val = (0, Utils_1.toBigInt)(value);
14
+ return {
15
+ sequence: val >> 64n,
16
+ payOut: (val & FLAG_PAY_OUT) === FLAG_PAY_OUT,
17
+ payIn: (val & FLAG_PAY_IN) === FLAG_PAY_IN,
18
+ reputation: (val & FLAG_REPUTATION) === FLAG_REPUTATION
19
+ };
20
+ }
21
+ getFlags() {
22
+ return (this.sequence << 64n) +
23
+ (this.payOut ? FLAG_PAY_OUT : 0n) +
24
+ (this.payIn ? FLAG_PAY_IN : 0n) +
25
+ (this.reputation ? FLAG_REPUTATION : 0n);
26
+ }
27
+ constructor(offererOrData, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, kind, extraData) {
28
+ super();
29
+ if (claimer != null || token != null || refundHandler != null || claimHandler != null ||
30
+ payOut != null || payIn != null || reputation != null || sequence != null || claimData != null || refundData != null ||
31
+ amount != null || feeToken != null || securityDeposit != null || claimerBounty != null) {
32
+ this.offerer = offererOrData;
33
+ this.claimer = claimer;
34
+ this.token = token;
35
+ this.refundHandler = refundHandler;
36
+ this.claimHandler = claimHandler;
37
+ this.payOut = payOut;
38
+ this.payIn = payIn;
39
+ this.reputation = reputation;
40
+ this.sequence = sequence;
41
+ this.claimData = claimData;
42
+ this.refundData = refundData;
43
+ this.amount = amount;
44
+ this.feeToken = feeToken;
45
+ this.securityDeposit = securityDeposit;
46
+ this.claimerBounty = claimerBounty;
47
+ this.kind = kind;
48
+ this.extraData = extraData;
49
+ }
50
+ else {
51
+ this.offerer = offererOrData.offerer;
52
+ this.claimer = offererOrData.claimer;
53
+ this.token = offererOrData.token;
54
+ this.refundHandler = offererOrData.refundHandler;
55
+ this.claimHandler = offererOrData.claimHandler;
56
+ this.payOut = offererOrData.payOut;
57
+ this.payIn = offererOrData.payIn;
58
+ this.reputation = offererOrData.reputation;
59
+ this.sequence = offererOrData.sequence == null ? null : BigInt(offererOrData.sequence);
60
+ this.claimData = offererOrData.claimData;
61
+ this.refundData = offererOrData.refundData;
62
+ this.amount = offererOrData.amount == null ? null : BigInt(offererOrData.amount);
63
+ this.feeToken = offererOrData.feeToken;
64
+ this.securityDeposit = offererOrData.securityDeposit == null ? null : BigInt(offererOrData.securityDeposit);
65
+ this.claimerBounty = offererOrData.claimerBounty == null ? null : BigInt(offererOrData.claimerBounty);
66
+ this.kind = offererOrData.kind;
67
+ this.extraData = offererOrData.extraData;
68
+ }
69
+ }
70
+ getOfferer() {
71
+ return this.offerer;
72
+ }
73
+ setOfferer(newOfferer) {
74
+ this.offerer = newOfferer;
75
+ this.payIn = true;
76
+ }
77
+ getClaimer() {
78
+ return this.claimer;
79
+ }
80
+ setClaimer(newClaimer) {
81
+ this.claimer = newClaimer;
82
+ this.payIn = false;
83
+ this.payOut = true;
84
+ this.reputation = false;
85
+ }
86
+ serialize() {
87
+ return {
88
+ type: "strk",
89
+ offerer: this.offerer,
90
+ claimer: this.claimer,
91
+ token: this.token,
92
+ refundHandler: this.refundHandler,
93
+ claimHandler: this.claimHandler,
94
+ payOut: this.payOut,
95
+ payIn: this.payIn,
96
+ reputation: this.reputation,
97
+ sequence: this.sequence == null ? null : this.sequence.toString(10),
98
+ claimData: this.claimData,
99
+ refundData: this.refundData,
100
+ amount: this.amount == null ? null : this.amount.toString(10),
101
+ feeToken: this.feeToken,
102
+ securityDeposit: this.securityDeposit == null ? null : this.securityDeposit.toString(10),
103
+ claimerBounty: this.claimerBounty == null ? null : this.claimerBounty.toString(10),
104
+ kind: this.kind,
105
+ extraData: this.extraData
106
+ };
107
+ }
108
+ getAmount() {
109
+ return this.amount;
110
+ }
111
+ getToken() {
112
+ return this.token;
113
+ }
114
+ isToken(token) {
115
+ return this.token.toLowerCase() === token.toLowerCase();
116
+ }
117
+ getType() {
118
+ return this.kind;
119
+ }
120
+ getExpiry() {
121
+ return TimelockRefundHandler_1.TimelockRefundHandler.getExpiry(this);
122
+ }
123
+ isPayIn() {
124
+ return this.payIn;
125
+ }
126
+ isPayOut() {
127
+ return this.payOut;
128
+ }
129
+ getEscrowHash() {
130
+ const amountValue = starknet_1.cairo.uint256("0x" + this.amount.toString(16));
131
+ const securityDepositValue = starknet_1.cairo.uint256("0x" + this.securityDeposit.toString(16));
132
+ const claimerBountyValue = starknet_1.cairo.uint256("0x" + this.claimerBounty.toString(16));
133
+ let escrowHash = starknet_1.hash.computePoseidonHashOnElements([
134
+ this.offerer,
135
+ this.claimer,
136
+ this.token,
137
+ this.refundHandler,
138
+ this.claimHandler,
139
+ this.getFlags(),
140
+ this.claimData,
141
+ this.refundData,
142
+ amountValue.low,
143
+ amountValue.high,
144
+ this.feeToken,
145
+ securityDepositValue.low,
146
+ securityDepositValue.high,
147
+ claimerBountyValue.low,
148
+ claimerBountyValue.high
149
+ ]);
150
+ if (escrowHash.startsWith("0x"))
151
+ escrowHash = escrowHash.slice(2);
152
+ return escrowHash.padStart(64, "0");
153
+ }
154
+ getClaimHash() {
155
+ let hash = this.claimData;
156
+ if (hash.startsWith("0x"))
157
+ hash = hash.slice(2);
158
+ return hash.padStart(64, "0");
159
+ }
160
+ getSequence() {
161
+ return this.sequence;
162
+ }
163
+ getConfirmationsHint() {
164
+ if (this.extraData == null)
165
+ return null;
166
+ if (this.extraData.length != 84)
167
+ return null;
168
+ return parseInt(this.extraData.slice(80), 16);
169
+ }
170
+ getNonceHint() {
171
+ if (this.extraData == null)
172
+ return null;
173
+ if (this.extraData.length != 84)
174
+ return null;
175
+ return BigInt("0x" + this.extraData.slice(64, 80));
176
+ }
177
+ getTxoHashHint() {
178
+ if (this.extraData == null)
179
+ return null;
180
+ if (this.extraData.length != 84)
181
+ return null;
182
+ return this.extraData.slice(0, 64);
183
+ }
184
+ getExtraData() {
185
+ return this.extraData;
186
+ }
187
+ setExtraData(extraData) {
188
+ this.extraData = extraData;
189
+ }
190
+ getSecurityDeposit() {
191
+ return this.securityDeposit;
192
+ }
193
+ getClaimerBounty() {
194
+ return this.claimerBounty;
195
+ }
196
+ getTotalDeposit() {
197
+ return this.claimerBounty < this.securityDeposit ? this.securityDeposit : this.claimerBounty;
198
+ }
199
+ getDepositToken() {
200
+ return this.feeToken;
201
+ }
202
+ isDepositToken(token) {
203
+ if (!token.startsWith("0x"))
204
+ token = "0x" + token;
205
+ return (0, Utils_1.toHex)(this.feeToken) === (0, Utils_1.toHex)(token);
206
+ }
207
+ isClaimer(address) {
208
+ if (!address.startsWith("0x"))
209
+ address = "0x" + address;
210
+ return (0, Utils_1.toHex)(this.claimer) === (0, Utils_1.toHex)(address);
211
+ }
212
+ isOfferer(address) {
213
+ if (!address.startsWith("0x"))
214
+ address = "0x" + address;
215
+ return (0, Utils_1.toHex)(this.offerer) === (0, Utils_1.toHex)(address);
216
+ }
217
+ isRefundHandler(address) {
218
+ if (!address.startsWith("0x"))
219
+ address = "0x" + address;
220
+ return (0, Utils_1.toHex)(this.refundHandler) === (0, Utils_1.toHex)(address);
221
+ }
222
+ isClaimHandler(address) {
223
+ if (!address.startsWith("0x"))
224
+ address = "0x" + address;
225
+ return (0, Utils_1.toHex)(this.claimHandler) === (0, Utils_1.toHex)(address);
226
+ }
227
+ isClaimData(data) {
228
+ if (!data.startsWith("0x"))
229
+ data = "0x" + data;
230
+ return (0, Utils_1.toHex)(this.claimData) === (0, Utils_1.toHex)(data);
231
+ }
232
+ equals(other) {
233
+ return other.offerer.toLowerCase() === this.offerer.toLowerCase() &&
234
+ other.claimer.toLowerCase() === this.claimer.toLowerCase() &&
235
+ other.token.toLowerCase() === this.token.toLowerCase() &&
236
+ other.refundHandler.toLowerCase() === this.refundHandler.toLowerCase() &&
237
+ other.claimHandler.toLowerCase() === this.claimHandler.toLowerCase() &&
238
+ other.payIn === this.payIn &&
239
+ other.payOut === this.payOut &&
240
+ other.reputation === this.reputation &&
241
+ this.sequence === other.sequence &&
242
+ other.claimData.toLowerCase() === this.claimData.toLowerCase() &&
243
+ other.refundData.toLowerCase() === this.refundData.toLowerCase() &&
244
+ other.amount === this.amount &&
245
+ other.securityDeposit === this.securityDeposit &&
246
+ other.claimerBounty === this.claimerBounty;
247
+ }
248
+ toEscrowStruct() {
249
+ return {
250
+ offerer: this.offerer,
251
+ claimer: this.claimer,
252
+ token: this.token,
253
+ refund_handler: this.refundHandler,
254
+ claim_handler: this.claimHandler,
255
+ flags: this.getFlags(),
256
+ claim_data: this.claimData,
257
+ refund_data: this.refundData,
258
+ amount: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.amount)),
259
+ fee_token: this.feeToken,
260
+ security_deposit: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.securityDeposit)),
261
+ claimer_bounty: starknet_1.cairo.uint256((0, Utils_1.toBigInt)(this.claimerBounty))
262
+ };
263
+ }
264
+ static fromSerializedFeltArray(span, claimHandlerImpl) {
265
+ const offerer = (0, Utils_1.toHex)(span.shift());
266
+ const claimer = (0, Utils_1.toHex)(span.shift());
267
+ const token = (0, Utils_1.toHex)(span.shift());
268
+ const refundHandler = (0, Utils_1.toHex)(span.shift());
269
+ const claimHandler = (0, Utils_1.toHex)(span.shift());
270
+ const { payOut, payIn, reputation, sequence } = StarknetSwapData.toFlags(span.shift());
271
+ const claimData = (0, Utils_1.toHex)(span.shift());
272
+ const refundData = (0, Utils_1.toHex)(span.shift());
273
+ const amount = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
274
+ const feeToken = (0, Utils_1.toHex)(span.shift());
275
+ const securityDeposit = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
276
+ const claimerBounty = (0, Utils_1.toBigInt)({ low: span.shift(), high: span.shift() });
277
+ return new StarknetSwapData(offerer, claimer, token, refundHandler, claimHandler, payOut, payIn, reputation, sequence, claimData, refundData, amount, feeToken, securityDeposit, claimerBounty, claimHandlerImpl.getType(), null);
278
+ }
279
+ }
280
+ exports.StarknetSwapData = StarknetSwapData;
281
+ base_1.SwapData.deserializers["strk"] = StarknetSwapData;
@@ -1,10 +1,10 @@
1
- import { StarknetSwapContract } from "./StarknetSwapContract";
2
- import { TypedContractV2 } from "starknet";
3
- import { EscrowManagerAbi } from "./EscrowManagerAbi";
4
- import { StarknetChainInterface } from "../chain/StarknetChainInterface";
5
- import { StarknetContractModule } from "../contract/StarknetContractModule";
6
- export declare class StarknetSwapModule extends StarknetContractModule<typeof EscrowManagerAbi> {
7
- readonly contract: StarknetSwapContract;
8
- readonly swapContract: TypedContractV2<typeof EscrowManagerAbi>;
9
- constructor(chainInterface: StarknetChainInterface, contract: StarknetSwapContract);
10
- }
1
+ import { StarknetSwapContract } from "./StarknetSwapContract";
2
+ import { TypedContractV2 } from "starknet";
3
+ import { EscrowManagerAbi } from "./EscrowManagerAbi";
4
+ import { StarknetChainInterface } from "../chain/StarknetChainInterface";
5
+ import { StarknetContractModule } from "../contract/StarknetContractModule";
6
+ export declare class StarknetSwapModule extends StarknetContractModule<typeof EscrowManagerAbi> {
7
+ readonly contract: StarknetSwapContract;
8
+ readonly swapContract: TypedContractV2<typeof EscrowManagerAbi>;
9
+ constructor(chainInterface: StarknetChainInterface, contract: StarknetSwapContract);
10
+ }
@@ -1,11 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetSwapModule = void 0;
4
- const StarknetContractModule_1 = require("../contract/StarknetContractModule");
5
- class StarknetSwapModule extends StarknetContractModule_1.StarknetContractModule {
6
- constructor(chainInterface, contract) {
7
- super(chainInterface, contract);
8
- this.swapContract = contract.contract;
9
- }
10
- }
11
- exports.StarknetSwapModule = StarknetSwapModule;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetSwapModule = void 0;
4
+ const StarknetContractModule_1 = require("../contract/StarknetContractModule");
5
+ class StarknetSwapModule extends StarknetContractModule_1.StarknetContractModule {
6
+ constructor(chainInterface, contract) {
7
+ super(chainInterface, contract);
8
+ this.swapContract = contract.contract;
9
+ }
10
+ }
11
+ exports.StarknetSwapModule = StarknetSwapModule;
@@ -1,13 +1,13 @@
1
- import { StarknetSwapData } from "../StarknetSwapData";
2
- import { BigNumberish } from "starknet";
3
- import { StarknetGas } from "../../chain/StarknetAction";
4
- import { StarknetTx } from "../../chain/modules/StarknetTransactions";
5
- export interface IHandler<TCommitmentData, TWitnessData> {
6
- readonly address: string;
7
- getCommitment(data: TCommitmentData): BigNumberish;
8
- getWitness(signer: string, data: StarknetSwapData, witnessData: TWitnessData, feeRate?: string): Promise<{
9
- initialTxns: StarknetTx[];
10
- witness: BigNumberish[];
11
- }>;
12
- getGas(data: StarknetSwapData): StarknetGas;
13
- }
1
+ import { StarknetSwapData } from "../StarknetSwapData";
2
+ import { BigNumberish } from "starknet";
3
+ import { StarknetGas } from "../../chain/StarknetAction";
4
+ import { StarknetTx } from "../../chain/modules/StarknetTransactions";
5
+ export interface IHandler<TCommitmentData, TWitnessData> {
6
+ readonly address: string;
7
+ getCommitment(data: TCommitmentData): BigNumberish;
8
+ getWitness(signer: string, data: StarknetSwapData, witnessData: TWitnessData, feeRate?: string): Promise<{
9
+ initialTxns: StarknetTx[];
10
+ witness: BigNumberish[];
11
+ }>;
12
+ getGas(data: StarknetSwapData): StarknetGas;
13
+ }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });