@atomiqlabs/chain-starknet 8.0.13 → 8.1.10

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 -18
  2. package/dist/index.js +42 -42
  3. package/dist/starknet/StarknetChainType.d.ts +19 -19
  4. package/dist/starknet/StarknetChainType.js +2 -2
  5. package/dist/starknet/StarknetInitializer.d.ts +66 -63
  6. package/dist/starknet/StarknetInitializer.js +101 -101
  7. package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
  8. package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
  9. package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +196 -196
  10. package/dist/starknet/btcrelay/StarknetBtcRelay.js +419 -411
  11. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +70 -70
  12. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +115 -115
  13. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +91 -91
  14. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +155 -155
  15. package/dist/starknet/chain/StarknetAction.d.ts +19 -19
  16. package/dist/starknet/chain/StarknetAction.js +74 -74
  17. package/dist/starknet/chain/StarknetChainInterface.d.ts +142 -143
  18. package/dist/starknet/chain/StarknetChainInterface.js +198 -199
  19. package/dist/starknet/chain/StarknetModule.d.ts +8 -8
  20. package/dist/starknet/chain/StarknetModule.js +12 -12
  21. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  22. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  23. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  24. package/dist/starknet/chain/modules/StarknetAccounts.js +26 -26
  25. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +10 -10
  26. package/dist/starknet/chain/modules/StarknetAddresses.js +27 -27
  27. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +27 -27
  28. package/dist/starknet/chain/modules/StarknetBlocks.js +82 -82
  29. package/dist/starknet/chain/modules/StarknetEvents.d.ts +47 -47
  30. package/dist/starknet/chain/modules/StarknetEvents.js +90 -90
  31. package/dist/starknet/chain/modules/StarknetFees.d.ts +118 -104
  32. package/dist/starknet/chain/modules/StarknetFees.js +150 -146
  33. package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
  34. package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
  35. package/dist/starknet/chain/modules/StarknetTokens.d.ts +66 -66
  36. package/dist/starknet/chain/modules/StarknetTokens.js +99 -99
  37. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +122 -115
  38. package/dist/starknet/chain/modules/StarknetTransactions.js +633 -612
  39. package/dist/starknet/contract/StarknetContractBase.d.ts +14 -13
  40. package/dist/starknet/contract/StarknetContractBase.js +21 -20
  41. package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
  42. package/dist/starknet/contract/StarknetContractModule.js +11 -11
  43. package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +56 -57
  44. package/dist/starknet/contract/modules/StarknetContractEvents.js +111 -111
  45. package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
  46. package/dist/starknet/events/StarknetChainEvents.js +61 -61
  47. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +178 -190
  48. package/dist/starknet/events/StarknetChainEventsBrowser.js +523 -582
  49. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +49 -53
  50. package/dist/starknet/provider/RpcProviderWithRetries.js +94 -94
  51. package/dist/starknet/provider/WebSocketChannelWithRetries.d.ts +21 -21
  52. package/dist/starknet/provider/WebSocketChannelWithRetries.js +46 -46
  53. package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
  54. package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +225 -219
  56. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +663 -621
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +108 -108
  58. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +190 -190
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +56 -56
  60. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +103 -103
  61. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
  62. package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
  63. package/dist/starknet/swaps/StarknetSwapContract.d.ts +309 -278
  64. package/dist/starknet/swaps/StarknetSwapContract.js +755 -579
  65. package/dist/starknet/swaps/StarknetSwapData.d.ts +234 -234
  66. package/dist/starknet/swaps/StarknetSwapData.js +474 -474
  67. package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
  68. package/dist/starknet/swaps/StarknetSwapModule.js +12 -12
  69. package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
  70. package/dist/starknet/swaps/handlers/IHandler.js +2 -2
  71. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
  72. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
  73. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
  74. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
  75. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  76. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
  77. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  78. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
  79. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
  80. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
  81. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +42 -45
  82. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +50 -54
  83. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  84. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
  85. package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +67 -67
  86. package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
  87. package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +52 -52
  88. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +99 -99
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +94 -94
  90. package/dist/starknet/swaps/modules/StarknetSwapInit.js +239 -239
  91. package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +60 -60
  92. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +126 -126
  93. package/dist/starknet/wallet/StarknetBrowserSigner.d.ts +11 -11
  94. package/dist/starknet/wallet/StarknetBrowserSigner.js +17 -17
  95. package/dist/starknet/wallet/StarknetPersistentSigner.d.ts +76 -76
  96. package/dist/starknet/wallet/StarknetPersistentSigner.js +291 -291
  97. package/dist/starknet/wallet/StarknetSigner.d.ts +72 -72
  98. package/dist/starknet/wallet/StarknetSigner.js +114 -114
  99. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.d.ts +18 -18
  100. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.js +45 -45
  101. package/dist/utils/Utils.d.ts +77 -77
  102. package/dist/utils/Utils.js +304 -303
  103. package/package.json +2 -2
  104. package/src/starknet/StarknetInitializer.ts +6 -3
  105. package/src/starknet/btcrelay/StarknetBtcRelay.ts +19 -6
  106. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +7 -7
  107. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +6 -6
  108. package/src/starknet/chain/StarknetAction.ts +1 -0
  109. package/src/starknet/chain/StarknetChainInterface.ts +0 -2
  110. package/src/starknet/chain/modules/StarknetFees.ts +15 -2
  111. package/src/starknet/chain/modules/StarknetTransactions.ts +24 -0
  112. package/src/starknet/contract/StarknetContractBase.ts +7 -4
  113. package/src/starknet/contract/StarknetContractModule.ts +1 -1
  114. package/src/starknet/contract/modules/StarknetContractEvents.ts +7 -7
  115. package/src/starknet/events/StarknetChainEventsBrowser.ts +2 -64
  116. package/src/starknet/provider/RpcProviderWithRetries.ts +1 -1
  117. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +84 -18
  118. package/src/starknet/swaps/StarknetSwapContract.ts +242 -6
  119. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +0 -4
@@ -1,278 +1,309 @@
1
- import { ChainSwapType, IntermediaryReputationType, RelaySynchronizer, SignatureData, SwapCommitState, SwapContract, TransactionConfirmationOptions } from "@atomiqlabs/base";
2
- import { Buffer } from "buffer";
3
- import { EscrowManagerAbi } from "./EscrowManagerAbi";
4
- import { StarknetContractBase } from "../contract/StarknetContractBase";
5
- import { StarknetTx } from "../chain/modules/StarknetTransactions";
6
- import { StarknetSigner } from "../wallet/StarknetSigner";
7
- import { StarknetChainInterface } from "../chain/StarknetChainInterface";
8
- import { StarknetBtcRelay } from "../btcrelay/StarknetBtcRelay";
9
- import { StarknetSwapData } from "./StarknetSwapData";
10
- import { StarknetLpVault } from "./modules/StarknetLpVault";
11
- import { StarknetPreFetchVerification, StarknetSwapInit } from "./modules/StarknetSwapInit";
12
- import { StarknetSwapRefund } from "./modules/StarknetSwapRefund";
13
- import { IClaimHandler } from "./handlers/claim/ClaimHandlers";
14
- import { StarknetSwapClaim } from "./modules/StarknetSwapClaim";
15
- import { IHandler } from "./handlers/IHandler";
16
- import { StarknetBtcStoredHeader } from "../btcrelay/headers/StarknetBtcStoredHeader";
17
- /**
18
- * Starknet swap contract (escrow manager) contract representation handling PrTLC (on-chain) and HTLC (lightning)
19
- * based swaps
20
- *
21
- * @category Swaps
22
- */
23
- export declare class StarknetSwapContract extends StarknetContractBase<typeof EscrowManagerAbi> implements SwapContract<StarknetSwapData, StarknetTx, never, StarknetPreFetchVerification, StarknetSigner, "STARKNET"> {
24
- /**
25
- * @inheritDoc
26
- */
27
- readonly supportsInitWithoutClaimer = true;
28
- readonly chainId: "STARKNET";
29
- /**
30
- * @inheritDoc
31
- */
32
- readonly claimWithSecretTimeout: number;
33
- /**
34
- * @inheritDoc
35
- */
36
- readonly claimWithTxDataTimeout: number;
37
- /**
38
- * @inheritDoc
39
- */
40
- readonly refundTimeout: number;
41
- private readonly claimGracePeriod;
42
- private readonly refundGracePeriod;
43
- /**
44
- * @private
45
- */
46
- readonly authGracePeriod: number;
47
- readonly Init: StarknetSwapInit;
48
- readonly Refund: StarknetSwapRefund;
49
- readonly Claim: StarknetSwapClaim;
50
- readonly LpVault: StarknetLpVault;
51
- readonly claimHandlersByAddress: {
52
- [address: string]: IClaimHandler<any, any>;
53
- };
54
- readonly claimHandlersBySwapType: {
55
- [type in ChainSwapType]?: IClaimHandler<any, any>;
56
- };
57
- readonly refundHandlersByAddress: {
58
- [address: string]: IHandler<any, any>;
59
- };
60
- readonly timelockRefundHandler: IHandler<any, any>;
61
- readonly btcRelay: StarknetBtcRelay<any>;
62
- /**
63
- * Constructs the swap contract (escrow manager)
64
- *
65
- * @param chainInterface Underlying chain interface to use
66
- * @param btcRelay Btc relay light client contract
67
- * @param contractAddress Optional underlying contract address (default is used otherwise)
68
- * @param _handlerAddresses Optional handler addresses (defaults are used otherwise)
69
- */
70
- constructor(chainInterface: StarknetChainInterface, btcRelay: StarknetBtcRelay<any>, contractAddress?: string, _handlerAddresses?: {
71
- refund?: {
72
- timelock?: string;
73
- };
74
- claim?: {
75
- [type in ChainSwapType]?: string;
76
- };
77
- });
78
- /**
79
- * @inheritDoc
80
- */
81
- start(): Promise<void>;
82
- /**
83
- * @inheritDoc
84
- */
85
- preFetchForInitSignatureVerification(): Promise<StarknetPreFetchVerification>;
86
- /**
87
- * @inheritDoc
88
- */
89
- getInitSignature(signer: StarknetSigner, swapData: StarknetSwapData, authorizationTimeout: number, preFetchedBlockData?: never, feeRate?: string): Promise<SignatureData>;
90
- /**
91
- * @inheritDoc
92
- */
93
- isValidInitAuthorization(sender: string, swapData: StarknetSwapData, sig: SignatureData, feeRate?: string, preFetchedData?: StarknetPreFetchVerification): Promise<null>;
94
- /**
95
- * @inheritDoc
96
- */
97
- getInitAuthorizationExpiry(swapData: StarknetSwapData, sig: SignatureData, preFetchedData?: StarknetPreFetchVerification): Promise<number>;
98
- /**
99
- * @inheritDoc
100
- */
101
- isInitAuthorizationExpired(swapData: StarknetSwapData, sig: SignatureData): Promise<boolean>;
102
- /**
103
- * @inheritDoc
104
- */
105
- getRefundSignature(signer: StarknetSigner, swapData: StarknetSwapData, authorizationTimeout: number): Promise<SignatureData>;
106
- /**
107
- * @inheritDoc
108
- */
109
- isValidRefundAuthorization(swapData: StarknetSwapData, sig: SignatureData): Promise<null>;
110
- /**
111
- * @inheritDoc
112
- */
113
- getDataSignature(signer: StarknetSigner, data: Buffer): Promise<string>;
114
- /**
115
- * @inheritDoc
116
- */
117
- isValidDataSignature(data: Buffer, signature: string, publicKey: string): Promise<boolean>;
118
- /**
119
- * @inheritDoc
120
- */
121
- isClaimable(signer: string, data: StarknetSwapData): Promise<boolean>;
122
- /**
123
- * @inheritDoc
124
- */
125
- isCommited(swapData: StarknetSwapData): Promise<boolean>;
126
- /**
127
- * @inheritDoc
128
- */
129
- isExpired(signer: string, data: StarknetSwapData): Promise<boolean>;
130
- /**
131
- * @inheritDoc
132
- */
133
- isRequestRefundable(signer: string, data: StarknetSwapData): Promise<boolean>;
134
- /**
135
- * @inheritDoc
136
- */
137
- getHashForTxId(txId: string, confirmations: number): Buffer<ArrayBufferLike>;
138
- /**
139
- * @inheritDoc
140
- */
141
- getHashForOnchain(outputScript: Buffer, amount: bigint, confirmations: number, nonce?: bigint): Buffer;
142
- /**
143
- * @inheritDoc
144
- */
145
- getHashForHtlc(paymentHash: Buffer): Buffer;
146
- /**
147
- * @inheritDoc
148
- */
149
- getExtraData(outputScript: Buffer, amount: bigint, confirmations: number, nonce?: bigint): Buffer;
150
- /**
151
- * @inheritDoc
152
- */
153
- getCommitStatus(signer: string, data: StarknetSwapData): Promise<SwapCommitState>;
154
- /**
155
- * @inheritDoc
156
- */
157
- getCommitStatuses(request: {
158
- signer: string;
159
- swapData: StarknetSwapData;
160
- }[]): Promise<{
161
- [p: string]: SwapCommitState;
162
- }>;
163
- /**
164
- * @inheritDoc
165
- */
166
- createSwapData(type: ChainSwapType, offerer: string, claimer: string, token: string, amount: bigint, claimData: string, sequence: bigint, expiry: bigint, payIn: boolean, payOut: boolean, securityDeposit: bigint, claimerBounty: bigint, depositToken?: string): Promise<StarknetSwapData>;
167
- /**
168
- *
169
- * @param address
170
- * @param token
171
- * @private
172
- */
173
- private getIntermediaryBalance;
174
- /**
175
- * @inheritDoc
176
- */
177
- getBalance(signer: string, tokenAddress: string, inContract?: boolean): Promise<bigint>;
178
- /**
179
- * @inheritDoc
180
- */
181
- getIntermediaryReputation(address: string, token: string): Promise<IntermediaryReputationType>;
182
- /**
183
- * @inheritDoc
184
- */
185
- txsClaimWithSecret(signer: string | StarknetSigner, swapData: StarknetSwapData, secret: string, checkExpiry?: boolean, initAta?: boolean, feeRate?: string, skipAtaCheck?: boolean): Promise<StarknetTx[]>;
186
- /**
187
- * @inheritDoc
188
- */
189
- txsClaimWithTxData(signer: string | StarknetSigner, swapData: StarknetSwapData, tx: {
190
- blockhash: string;
191
- confirmations: number;
192
- txid: string;
193
- hex: string;
194
- height: number;
195
- }, requiredConfirmations: number, vout: number, commitedHeader?: StarknetBtcStoredHeader, synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>, initAta?: boolean, feeRate?: string): Promise<StarknetTx[]>;
196
- /**
197
- * @inheritDoc
198
- */
199
- txsRefund(signer: string, swapData: StarknetSwapData, check?: boolean, initAta?: boolean, feeRate?: string): Promise<StarknetTx[]>;
200
- /**
201
- * @inheritDoc
202
- */
203
- txsRefundWithAuthorization(signer: string, swapData: StarknetSwapData, sig: SignatureData, check?: boolean, initAta?: boolean, feeRate?: string): Promise<StarknetTx[]>;
204
- /**
205
- * @inheritDoc
206
- */
207
- txsInit(sender: string, swapData: StarknetSwapData, sig: SignatureData, skipChecks?: boolean, feeRate?: string): Promise<StarknetTx[]>;
208
- /**
209
- * @inheritDoc
210
- */
211
- txsWithdraw(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
212
- /**
213
- * @inheritDoc
214
- */
215
- txsDeposit(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
216
- /**
217
- * @inheritDoc
218
- */
219
- claimWithSecret(signer: StarknetSigner, swapData: StarknetSwapData, secret: string, checkExpiry?: boolean, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
220
- /**
221
- * @inheritDoc
222
- */
223
- claimWithTxData(signer: StarknetSigner, swapData: StarknetSwapData, tx: {
224
- blockhash: string;
225
- confirmations: number;
226
- txid: string;
227
- hex: string;
228
- height: number;
229
- }, requiredConfirmations: number, vout: number, commitedHeader?: StarknetBtcStoredHeader, synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
230
- /**
231
- * @inheritDoc
232
- */
233
- refund(signer: StarknetSigner, swapData: StarknetSwapData, check?: boolean, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
234
- /**
235
- * @inheritDoc
236
- */
237
- refundWithAuthorization(signer: StarknetSigner, swapData: StarknetSwapData, signature: SignatureData, check?: boolean, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
238
- /**
239
- * @inheritDoc
240
- */
241
- init(signer: StarknetSigner, swapData: StarknetSwapData, signature: SignatureData, skipChecks?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
242
- /**
243
- * @inheritDoc
244
- */
245
- withdraw(signer: StarknetSigner, token: string, amount: bigint, txOptions?: TransactionConfirmationOptions): Promise<string>;
246
- /**
247
- * @inheritDoc
248
- */
249
- deposit(signer: StarknetSigner, token: string, amount: bigint, txOptions?: TransactionConfirmationOptions): Promise<string>;
250
- /**
251
- * @inheritDoc
252
- */
253
- getInitPayInFeeRate(offerer?: string, claimer?: string, token?: string, paymentHash?: string): Promise<string>;
254
- /**
255
- * @inheritDoc
256
- */
257
- getInitFeeRate(offerer?: string, claimer?: string, token?: string, paymentHash?: string): Promise<string>;
258
- /**
259
- * @inheritDoc
260
- */
261
- getRefundFeeRate(swapData: StarknetSwapData): Promise<string>;
262
- /**
263
- * @inheritDoc
264
- */
265
- getClaimFeeRate(signer: string, swapData: StarknetSwapData): Promise<string>;
266
- /**
267
- * @inheritDoc
268
- */
269
- getClaimFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
270
- /**
271
- * @inheritDoc
272
- */
273
- getCommitFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
274
- /**
275
- * @inheritDoc
276
- */
277
- getRefundFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
278
- }
1
+ import { ChainSwapType, IntermediaryReputationType, RelaySynchronizer, SignatureData, SwapCommitState, SwapContract, TransactionConfirmationOptions } from "@atomiqlabs/base";
2
+ import { Buffer } from "buffer";
3
+ import { EscrowManagerAbi } from "./EscrowManagerAbi";
4
+ import { StarknetContractBase } from "../contract/StarknetContractBase";
5
+ import { StarknetTraceCall, StarknetTx } from "../chain/modules/StarknetTransactions";
6
+ import { StarknetSigner } from "../wallet/StarknetSigner";
7
+ import { BigNumberish } from "starknet";
8
+ import { StarknetChainInterface } from "../chain/StarknetChainInterface";
9
+ import { StarknetBtcRelay } from "../btcrelay/StarknetBtcRelay";
10
+ import { StarknetSwapData } from "./StarknetSwapData";
11
+ import { StarknetLpVault } from "./modules/StarknetLpVault";
12
+ import { StarknetPreFetchVerification, StarknetSwapInit } from "./modules/StarknetSwapInit";
13
+ import { StarknetSwapRefund } from "./modules/StarknetSwapRefund";
14
+ import { IClaimHandler } from "./handlers/claim/ClaimHandlers";
15
+ import { StarknetSwapClaim } from "./modules/StarknetSwapClaim";
16
+ import { IHandler } from "./handlers/IHandler";
17
+ import { StarknetBtcStoredHeader } from "../btcrelay/headers/StarknetBtcStoredHeader";
18
+ /**
19
+ * Starknet swap contract (escrow manager) contract representation handling PrTLC (on-chain) and HTLC (lightning)
20
+ * based swaps
21
+ *
22
+ * @category Swaps
23
+ */
24
+ export declare class StarknetSwapContract extends StarknetContractBase<typeof EscrowManagerAbi> implements SwapContract<StarknetSwapData, StarknetTx, never, StarknetPreFetchVerification, StarknetSigner, "STARKNET"> {
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ readonly supportsInitWithoutClaimer = true;
29
+ readonly chainId: "STARKNET";
30
+ /**
31
+ * @inheritDoc
32
+ */
33
+ readonly claimWithSecretTimeout: number;
34
+ /**
35
+ * @inheritDoc
36
+ */
37
+ readonly claimWithTxDataTimeout: number;
38
+ /**
39
+ * @inheritDoc
40
+ */
41
+ readonly refundTimeout: number;
42
+ private readonly claimGracePeriod;
43
+ private readonly refundGracePeriod;
44
+ /**
45
+ * @private
46
+ */
47
+ readonly authGracePeriod: number;
48
+ readonly Init: StarknetSwapInit;
49
+ readonly Refund: StarknetSwapRefund;
50
+ readonly Claim: StarknetSwapClaim;
51
+ readonly LpVault: StarknetLpVault;
52
+ readonly claimHandlersByAddress: {
53
+ [address: string]: IClaimHandler<any, any>;
54
+ };
55
+ readonly claimHandlersBySwapType: {
56
+ [type in ChainSwapType]?: IClaimHandler<any, any>;
57
+ };
58
+ readonly refundHandlersByAddress: {
59
+ [address: string]: IHandler<any, any>;
60
+ };
61
+ readonly timelockRefundHandler: IHandler<any, any>;
62
+ readonly btcRelay: StarknetBtcRelay<any>;
63
+ private readonly initFunctionName;
64
+ private readonly initEntryPointSelector;
65
+ /**
66
+ * Constructs the swap contract (escrow manager)
67
+ *
68
+ * @param chainInterface Underlying chain interface to use
69
+ * @param btcRelay Btc relay light client contract
70
+ * @param contractAddress Optional underlying contract address (default is used otherwise)
71
+ * @param _handlerAddresses Optional handler addresses (defaults are used otherwise)
72
+ * @param contractDeploymentHeight The height at which this contract was deployed (default is used otherwise)
73
+ */
74
+ constructor(chainInterface: StarknetChainInterface, btcRelay: StarknetBtcRelay<any>, contractAddress?: string, _handlerAddresses?: {
75
+ refund?: {
76
+ timelock?: string;
77
+ };
78
+ claim?: {
79
+ [type in ChainSwapType]?: string;
80
+ };
81
+ }, contractDeploymentHeight?: number);
82
+ /**
83
+ * @inheritDoc
84
+ */
85
+ start(): Promise<void>;
86
+ /**
87
+ * @inheritDoc
88
+ */
89
+ preFetchForInitSignatureVerification(): Promise<StarknetPreFetchVerification>;
90
+ /**
91
+ * @inheritDoc
92
+ */
93
+ getInitSignature(signer: StarknetSigner, swapData: StarknetSwapData, authorizationTimeout: number, preFetchedBlockData?: never, feeRate?: string): Promise<SignatureData>;
94
+ /**
95
+ * @inheritDoc
96
+ */
97
+ isValidInitAuthorization(sender: string, swapData: StarknetSwapData, sig: SignatureData, feeRate?: string, preFetchedData?: StarknetPreFetchVerification): Promise<null>;
98
+ /**
99
+ * @inheritDoc
100
+ */
101
+ getInitAuthorizationExpiry(swapData: StarknetSwapData, sig: SignatureData, preFetchedData?: StarknetPreFetchVerification): Promise<number>;
102
+ /**
103
+ * @inheritDoc
104
+ */
105
+ isInitAuthorizationExpired(swapData: StarknetSwapData, sig: SignatureData): Promise<boolean>;
106
+ /**
107
+ * @inheritDoc
108
+ */
109
+ getRefundSignature(signer: StarknetSigner, swapData: StarknetSwapData, authorizationTimeout: number): Promise<SignatureData>;
110
+ /**
111
+ * @inheritDoc
112
+ */
113
+ isValidRefundAuthorization(swapData: StarknetSwapData, sig: SignatureData): Promise<null>;
114
+ /**
115
+ * @inheritDoc
116
+ */
117
+ getDataSignature(signer: StarknetSigner, data: Buffer): Promise<string>;
118
+ /**
119
+ * @inheritDoc
120
+ */
121
+ isValidDataSignature(data: Buffer, signature: string, publicKey: string): Promise<boolean>;
122
+ /**
123
+ * @inheritDoc
124
+ */
125
+ isClaimable(signer: string, data: StarknetSwapData): Promise<boolean>;
126
+ /**
127
+ * @inheritDoc
128
+ */
129
+ isCommited(swapData: StarknetSwapData): Promise<boolean>;
130
+ /**
131
+ * @inheritDoc
132
+ */
133
+ isExpired(signer: string, data: StarknetSwapData): Promise<boolean>;
134
+ /**
135
+ * @inheritDoc
136
+ */
137
+ isRequestRefundable(signer: string, data: StarknetSwapData): Promise<boolean>;
138
+ /**
139
+ * @inheritDoc
140
+ */
141
+ getHashForTxId(txId: string, confirmations: number): Buffer<ArrayBufferLike>;
142
+ /**
143
+ * @inheritDoc
144
+ */
145
+ getHashForOnchain(outputScript: Buffer, amount: bigint, confirmations: number, nonce?: bigint): Buffer;
146
+ /**
147
+ * @inheritDoc
148
+ */
149
+ getHashForHtlc(paymentHash: Buffer): Buffer;
150
+ /**
151
+ * @inheritDoc
152
+ */
153
+ getExtraData(outputScript: Buffer, amount: bigint, confirmations: number, nonce?: bigint): Buffer;
154
+ /**
155
+ * @inheritDoc
156
+ */
157
+ getCommitStatus(signer: string, data: StarknetSwapData): Promise<SwapCommitState>;
158
+ /**
159
+ * @inheritDoc
160
+ */
161
+ getCommitStatuses(request: {
162
+ signer: string;
163
+ swapData: StarknetSwapData;
164
+ }[]): Promise<{
165
+ [p: string]: SwapCommitState;
166
+ }>;
167
+ /**
168
+ * @inheritDoc
169
+ */
170
+ getHistoricalSwaps(signer: string, startBlockheight?: number): Promise<{
171
+ swaps: {
172
+ [escrowHash: string]: {
173
+ init?: {
174
+ data: StarknetSwapData;
175
+ getInitTxId: () => Promise<string>;
176
+ getTxBlock: () => Promise<{
177
+ blockTime: number;
178
+ blockHeight: number;
179
+ }>;
180
+ };
181
+ state: SwapCommitState;
182
+ };
183
+ };
184
+ latestBlockheight?: number;
185
+ }>;
186
+ /**
187
+ * @inheritDoc
188
+ */
189
+ createSwapData(type: ChainSwapType, offerer: string, claimer: string, token: string, amount: bigint, claimData: string, sequence: bigint, expiry: bigint, payIn: boolean, payOut: boolean, securityDeposit: bigint, claimerBounty: bigint, depositToken?: string): Promise<StarknetSwapData>;
190
+ /**
191
+ *
192
+ * @param call
193
+ * @param escrowHash
194
+ * @param claimHandler
195
+ * @private
196
+ */
197
+ findInitSwapData(call: StarknetTraceCall, escrowHash: BigNumberish, claimHandler: IClaimHandler<any, any>): StarknetSwapData | null;
198
+ /**
199
+ *
200
+ * @param address
201
+ * @param token
202
+ * @private
203
+ */
204
+ private getIntermediaryBalance;
205
+ /**
206
+ * @inheritDoc
207
+ */
208
+ getBalance(signer: string, tokenAddress: string, inContract?: boolean): Promise<bigint>;
209
+ /**
210
+ * @inheritDoc
211
+ */
212
+ getIntermediaryReputation(address: string, token: string): Promise<IntermediaryReputationType>;
213
+ /**
214
+ * @inheritDoc
215
+ */
216
+ txsClaimWithSecret(signer: string | StarknetSigner, swapData: StarknetSwapData, secret: string, checkExpiry?: boolean, initAta?: boolean, feeRate?: string, skipAtaCheck?: boolean): Promise<StarknetTx[]>;
217
+ /**
218
+ * @inheritDoc
219
+ */
220
+ txsClaimWithTxData(signer: string | StarknetSigner, swapData: StarknetSwapData, tx: {
221
+ blockhash: string;
222
+ confirmations: number;
223
+ txid: string;
224
+ hex: string;
225
+ height: number;
226
+ }, requiredConfirmations: number, vout: number, commitedHeader?: StarknetBtcStoredHeader, synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>, initAta?: boolean, feeRate?: string): Promise<StarknetTx[]>;
227
+ /**
228
+ * @inheritDoc
229
+ */
230
+ txsRefund(signer: string, swapData: StarknetSwapData, check?: boolean, initAta?: boolean, feeRate?: string): Promise<StarknetTx[]>;
231
+ /**
232
+ * @inheritDoc
233
+ */
234
+ txsRefundWithAuthorization(signer: string, swapData: StarknetSwapData, sig: SignatureData, check?: boolean, initAta?: boolean, feeRate?: string): Promise<StarknetTx[]>;
235
+ /**
236
+ * @inheritDoc
237
+ */
238
+ txsInit(sender: string, swapData: StarknetSwapData, sig: SignatureData, skipChecks?: boolean, feeRate?: string): Promise<StarknetTx[]>;
239
+ /**
240
+ * @inheritDoc
241
+ */
242
+ txsWithdraw(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
243
+ /**
244
+ * @inheritDoc
245
+ */
246
+ txsDeposit(signer: string, token: string, amount: bigint, feeRate?: string): Promise<StarknetTx[]>;
247
+ /**
248
+ * @inheritDoc
249
+ */
250
+ claimWithSecret(signer: StarknetSigner, swapData: StarknetSwapData, secret: string, checkExpiry?: boolean, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
251
+ /**
252
+ * @inheritDoc
253
+ */
254
+ claimWithTxData(signer: StarknetSigner, swapData: StarknetSwapData, tx: {
255
+ blockhash: string;
256
+ confirmations: number;
257
+ txid: string;
258
+ hex: string;
259
+ height: number;
260
+ }, requiredConfirmations: number, vout: number, commitedHeader?: StarknetBtcStoredHeader, synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
261
+ /**
262
+ * @inheritDoc
263
+ */
264
+ refund(signer: StarknetSigner, swapData: StarknetSwapData, check?: boolean, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
265
+ /**
266
+ * @inheritDoc
267
+ */
268
+ refundWithAuthorization(signer: StarknetSigner, swapData: StarknetSwapData, signature: SignatureData, check?: boolean, initAta?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
269
+ /**
270
+ * @inheritDoc
271
+ */
272
+ init(signer: StarknetSigner, swapData: StarknetSwapData, signature: SignatureData, skipChecks?: boolean, txOptions?: TransactionConfirmationOptions): Promise<string>;
273
+ /**
274
+ * @inheritDoc
275
+ */
276
+ withdraw(signer: StarknetSigner, token: string, amount: bigint, txOptions?: TransactionConfirmationOptions): Promise<string>;
277
+ /**
278
+ * @inheritDoc
279
+ */
280
+ deposit(signer: StarknetSigner, token: string, amount: bigint, txOptions?: TransactionConfirmationOptions): Promise<string>;
281
+ /**
282
+ * @inheritDoc
283
+ */
284
+ getInitPayInFeeRate(offerer?: string, claimer?: string, token?: string, paymentHash?: string): Promise<string>;
285
+ /**
286
+ * @inheritDoc
287
+ */
288
+ getInitFeeRate(offerer?: string, claimer?: string, token?: string, paymentHash?: string): Promise<string>;
289
+ /**
290
+ * @inheritDoc
291
+ */
292
+ getRefundFeeRate(swapData: StarknetSwapData): Promise<string>;
293
+ /**
294
+ * @inheritDoc
295
+ */
296
+ getClaimFeeRate(signer: string, swapData: StarknetSwapData): Promise<string>;
297
+ /**
298
+ * @inheritDoc
299
+ */
300
+ getClaimFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
301
+ /**
302
+ * @inheritDoc
303
+ */
304
+ getCommitFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
305
+ /**
306
+ * @inheritDoc
307
+ */
308
+ getRefundFee(signer: string, swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
309
+ }