@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,122 +1,122 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetLpVault = void 0;
4
- const Utils_1 = require("../../../utils/Utils");
5
- const StarknetSwapModule_1 = require("../StarknetSwapModule");
6
- const StarknetAction_1 = require("../../chain/StarknetAction");
7
- const starknet_1 = require("starknet");
8
- class StarknetLpVault extends StarknetSwapModule_1.StarknetSwapModule {
9
- /**
10
- * Action for withdrawing funds from the LP vault
11
- *
12
- * @param signer
13
- * @param token
14
- * @param amount
15
- * @private
16
- */
17
- Withdraw(signer, token, amount) {
18
- return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.withdraw(token, starknet_1.cairo.uint256(amount), signer), StarknetLpVault.GasCosts.WITHDRAW);
19
- }
20
- /**
21
- * Action for depositing funds to the LP vault
22
- *
23
- * @param signer
24
- * @param token
25
- * @param amount
26
- * @private
27
- */
28
- Deposit(signer, token, amount) {
29
- return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.deposit(token, starknet_1.cairo.uint256(amount)), StarknetLpVault.GasCosts.WITHDRAW);
30
- }
31
- /**
32
- * Returns intermediary's reputation & vault balance for a specific token
33
- *
34
- * @param address
35
- * @param token
36
- */
37
- async getIntermediaryData(address, token) {
38
- const [balance, reputation] = await Promise.all([
39
- this.getIntermediaryBalance(address, token),
40
- this.getIntermediaryReputation(address, token)
41
- ]);
42
- return { balance, reputation };
43
- }
44
- /**
45
- * Returns intermediary's reputation for a specific token
46
- *
47
- * @param address
48
- * @param token
49
- */
50
- async getIntermediaryReputation(address, token) {
51
- const filter = Object.keys(this.contract.claimHandlersByAddress).map(claimHandler => starknet_1.cairo.tuple(address, token, claimHandler));
52
- const rawReputation = await this.provider.callContract(this.swapContract.populateTransaction.get_reputation(filter));
53
- if (rawReputation.length < 1 + (filter.length * 9))
54
- throw new Error("Invalid response length");
55
- const length = (0, Utils_1.toBigInt)(rawReputation.shift());
56
- if (Number(length) !== filter.length)
57
- throw new Error("Invalid response length prefix");
58
- const result = {};
59
- Object.keys(this.contract.claimHandlersByAddress).forEach((address) => {
60
- const handler = this.contract.claimHandlersByAddress[address];
61
- result[handler.getType()] = {
62
- successVolume: (0, Utils_1.toBigInt)({ low: rawReputation.shift(), high: rawReputation.shift() }),
63
- successCount: (0, Utils_1.toBigInt)(rawReputation.shift()),
64
- coopCloseVolume: (0, Utils_1.toBigInt)({ low: rawReputation.shift(), high: rawReputation.shift() }),
65
- coopCloseCount: (0, Utils_1.toBigInt)(rawReputation.shift()),
66
- failVolume: (0, Utils_1.toBigInt)({ low: rawReputation.shift(), high: rawReputation.shift() }),
67
- failCount: (0, Utils_1.toBigInt)(rawReputation.shift()),
68
- };
69
- });
70
- return result;
71
- }
72
- /**
73
- * Returns the balance of the token an intermediary has in his LP vault
74
- *
75
- * @param address
76
- * @param token
77
- */
78
- async getIntermediaryBalance(address, token) {
79
- const balance = (0, Utils_1.toBigInt)((await this.swapContract.get_balance([starknet_1.cairo.tuple(address, token)]))[0]);
80
- this.logger.debug("getIntermediaryBalance(): token LP balance fetched, token: " + token.toString() +
81
- " address: " + address + " amount: " + (balance == null ? "null" : balance.toString()));
82
- return balance;
83
- }
84
- /**
85
- * Creates transactions for withdrawing funds from the LP vault, creates ATA if it doesn't exist and unwraps
86
- * WSOL to SOL if required
87
- *
88
- * @param signer
89
- * @param token
90
- * @param amount
91
- * @param feeRate
92
- */
93
- async txsWithdraw(signer, token, amount, feeRate) {
94
- const action = await this.Withdraw(signer, token, amount);
95
- feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
96
- this.logger.debug("txsWithdraw(): withdraw TX created, token: " + token.toString() +
97
- " amount: " + amount.toString(10));
98
- return [await action.tx(feeRate)];
99
- }
100
- /**
101
- * Creates transaction for depositing funds into the LP vault, wraps SOL to WSOL if required
102
- *
103
- * @param signer
104
- * @param token
105
- * @param amount
106
- * @param feeRate
107
- */
108
- async txsDeposit(signer, token, amount, feeRate) {
109
- //Approve first
110
- const action = await this.root.Tokens.Approve(signer, this.swapContract.address, token, amount);
111
- action.add(this.Deposit(signer, token, amount));
112
- feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
113
- this.logger.debug("txsDeposit(): deposit TX created, token: " + token.toString() +
114
- " amount: " + amount.toString(10));
115
- return [await action.tx(feeRate)];
116
- }
117
- }
118
- exports.StarknetLpVault = StarknetLpVault;
119
- StarknetLpVault.GasCosts = {
120
- WITHDRAW: { l1DataGas: 500, l2Gas: 3200000, l1Gas: 0 },
121
- DEPOSIT: { l1: 500, l2Gas: 4000000, l1Gas: 0 }
122
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetLpVault = void 0;
4
+ const Utils_1 = require("../../../utils/Utils");
5
+ const StarknetSwapModule_1 = require("../StarknetSwapModule");
6
+ const StarknetAction_1 = require("../../chain/StarknetAction");
7
+ const starknet_1 = require("starknet");
8
+ class StarknetLpVault extends StarknetSwapModule_1.StarknetSwapModule {
9
+ /**
10
+ * Action for withdrawing funds from the LP vault
11
+ *
12
+ * @param signer
13
+ * @param token
14
+ * @param amount
15
+ * @private
16
+ */
17
+ Withdraw(signer, token, amount) {
18
+ return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.withdraw(token, starknet_1.cairo.uint256(amount), signer), StarknetLpVault.GasCosts.WITHDRAW);
19
+ }
20
+ /**
21
+ * Action for depositing funds to the LP vault
22
+ *
23
+ * @param signer
24
+ * @param token
25
+ * @param amount
26
+ * @private
27
+ */
28
+ Deposit(signer, token, amount) {
29
+ return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.deposit(token, starknet_1.cairo.uint256(amount)), StarknetLpVault.GasCosts.WITHDRAW);
30
+ }
31
+ /**
32
+ * Returns intermediary's reputation & vault balance for a specific token
33
+ *
34
+ * @param address
35
+ * @param token
36
+ */
37
+ async getIntermediaryData(address, token) {
38
+ const [balance, reputation] = await Promise.all([
39
+ this.getIntermediaryBalance(address, token),
40
+ this.getIntermediaryReputation(address, token)
41
+ ]);
42
+ return { balance, reputation };
43
+ }
44
+ /**
45
+ * Returns intermediary's reputation for a specific token
46
+ *
47
+ * @param address
48
+ * @param token
49
+ */
50
+ async getIntermediaryReputation(address, token) {
51
+ const filter = Object.keys(this.contract.claimHandlersByAddress).map(claimHandler => starknet_1.cairo.tuple(address, token, claimHandler));
52
+ const rawReputation = await this.provider.callContract(this.swapContract.populateTransaction.get_reputation(filter));
53
+ if (rawReputation.length < 1 + (filter.length * 9))
54
+ throw new Error("Invalid response length");
55
+ const length = (0, Utils_1.toBigInt)(rawReputation.shift());
56
+ if (Number(length) !== filter.length)
57
+ throw new Error("Invalid response length prefix");
58
+ const result = {};
59
+ Object.keys(this.contract.claimHandlersByAddress).forEach((address) => {
60
+ const handler = this.contract.claimHandlersByAddress[address];
61
+ result[handler.getType()] = {
62
+ successVolume: (0, Utils_1.toBigInt)({ low: rawReputation.shift(), high: rawReputation.shift() }),
63
+ successCount: (0, Utils_1.toBigInt)(rawReputation.shift()),
64
+ coopCloseVolume: (0, Utils_1.toBigInt)({ low: rawReputation.shift(), high: rawReputation.shift() }),
65
+ coopCloseCount: (0, Utils_1.toBigInt)(rawReputation.shift()),
66
+ failVolume: (0, Utils_1.toBigInt)({ low: rawReputation.shift(), high: rawReputation.shift() }),
67
+ failCount: (0, Utils_1.toBigInt)(rawReputation.shift()),
68
+ };
69
+ });
70
+ return result;
71
+ }
72
+ /**
73
+ * Returns the balance of the token an intermediary has in his LP vault
74
+ *
75
+ * @param address
76
+ * @param token
77
+ */
78
+ async getIntermediaryBalance(address, token) {
79
+ const balance = (0, Utils_1.toBigInt)((await this.swapContract.get_balance([starknet_1.cairo.tuple(address, token)]))[0]);
80
+ this.logger.debug("getIntermediaryBalance(): token LP balance fetched, token: " + token.toString() +
81
+ " address: " + address + " amount: " + (balance == null ? "null" : balance.toString()));
82
+ return balance;
83
+ }
84
+ /**
85
+ * Creates transactions for withdrawing funds from the LP vault, creates ATA if it doesn't exist and unwraps
86
+ * WSOL to SOL if required
87
+ *
88
+ * @param signer
89
+ * @param token
90
+ * @param amount
91
+ * @param feeRate
92
+ */
93
+ async txsWithdraw(signer, token, amount, feeRate) {
94
+ const action = await this.Withdraw(signer, token, amount);
95
+ feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
96
+ this.logger.debug("txsWithdraw(): withdraw TX created, token: " + token.toString() +
97
+ " amount: " + amount.toString(10));
98
+ return [await action.tx(feeRate)];
99
+ }
100
+ /**
101
+ * Creates transaction for depositing funds into the LP vault, wraps SOL to WSOL if required
102
+ *
103
+ * @param signer
104
+ * @param token
105
+ * @param amount
106
+ * @param feeRate
107
+ */
108
+ async txsDeposit(signer, token, amount, feeRate) {
109
+ //Approve first
110
+ const action = await this.root.Tokens.Approve(signer, this.swapContract.address, token, amount);
111
+ action.add(this.Deposit(signer, token, amount));
112
+ feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
113
+ this.logger.debug("txsDeposit(): deposit TX created, token: " + token.toString() +
114
+ " amount: " + amount.toString(10));
115
+ return [await action.tx(feeRate)];
116
+ }
117
+ }
118
+ exports.StarknetLpVault = StarknetLpVault;
119
+ StarknetLpVault.GasCosts = {
120
+ WITHDRAW: { l1DataGas: 500, l2Gas: 3200000, l1Gas: 0 },
121
+ DEPOSIT: { l1: 500, l2Gas: 4000000, l1Gas: 0 }
122
+ };
@@ -1,52 +1,52 @@
1
- import { RelaySynchronizer } from "@atomiqlabs/base";
2
- import { StarknetSwapModule } from "../StarknetSwapModule";
3
- import { StarknetSwapData } from "../StarknetSwapData";
4
- import { StarknetTx } from "../../chain/modules/StarknetTransactions";
5
- import { StarknetBtcStoredHeader } from "../../btcrelay/headers/StarknetBtcStoredHeader";
6
- export declare class StarknetSwapClaim extends StarknetSwapModule {
7
- private static readonly GasCosts;
8
- /**
9
- * Claim action which uses the provided witness for claiming the swap
10
- *
11
- * @param signer
12
- * @param swapData
13
- * @param witness
14
- * @param claimHandlerGas
15
- * @private
16
- */
17
- private Claim;
18
- /**
19
- * Creates transactions claiming the swap using a secret (for HTLC swaps)
20
- *
21
- * @param signer
22
- * @param swapData swap to claim
23
- * @param secret hex encoded secret pre-image to the HTLC hash
24
- * @param checkExpiry whether to check if the swap is already expired (trying to claim an expired swap with a secret
25
- * is dangerous because we might end up revealing the secret to the counterparty without being able to claim the swap)
26
- * @param feeRate fee rate to use for the transaction
27
- */
28
- txsClaimWithSecret(signer: string, swapData: StarknetSwapData, secret: string, checkExpiry?: boolean, feeRate?: string): Promise<StarknetTx[]>;
29
- /**
30
- * Creates transaction claiming the swap using a confirmed transaction data (for BTC on-chain swaps)
31
- *
32
- * @param signer
33
- * @param swapData swap to claim
34
- * @param tx bitcoin transaction that satisfies the swap condition
35
- * @param requiredConfirmations
36
- * @param vout vout of the bitcoin transaction that satisfies the swap condition
37
- * @param commitedHeader commited header data from btc relay (fetched internally if null)
38
- * @param synchronizer optional synchronizer to use in case we need to sync up the btc relay ourselves
39
- * @param feeRate fee rate to be used for the transactions
40
- */
41
- txsClaimWithTxData(signer: string, swapData: StarknetSwapData, tx: {
42
- blockhash: string;
43
- confirmations: number;
44
- txid: string;
45
- hex: string;
46
- height: number;
47
- }, requiredConfirmations: number, vout: number, commitedHeader?: StarknetBtcStoredHeader, synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>, feeRate?: string): Promise<StarknetTx[]>;
48
- /**
49
- * Get the estimated starknet transaction fee of the claim transaction
50
- */
51
- getClaimFee(swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
52
- }
1
+ import { RelaySynchronizer } from "@atomiqlabs/base";
2
+ import { StarknetSwapModule } from "../StarknetSwapModule";
3
+ import { StarknetSwapData } from "../StarknetSwapData";
4
+ import { StarknetTx } from "../../chain/modules/StarknetTransactions";
5
+ import { StarknetBtcStoredHeader } from "../../btcrelay/headers/StarknetBtcStoredHeader";
6
+ export declare class StarknetSwapClaim extends StarknetSwapModule {
7
+ private static readonly GasCosts;
8
+ /**
9
+ * Claim action which uses the provided witness for claiming the swap
10
+ *
11
+ * @param signer
12
+ * @param swapData
13
+ * @param witness
14
+ * @param claimHandlerGas
15
+ * @private
16
+ */
17
+ private Claim;
18
+ /**
19
+ * Creates transactions claiming the swap using a secret (for HTLC swaps)
20
+ *
21
+ * @param signer
22
+ * @param swapData swap to claim
23
+ * @param secret hex encoded secret pre-image to the HTLC hash
24
+ * @param checkExpiry whether to check if the swap is already expired (trying to claim an expired swap with a secret
25
+ * is dangerous because we might end up revealing the secret to the counterparty without being able to claim the swap)
26
+ * @param feeRate fee rate to use for the transaction
27
+ */
28
+ txsClaimWithSecret(signer: string, swapData: StarknetSwapData, secret: string, checkExpiry?: boolean, feeRate?: string): Promise<StarknetTx[]>;
29
+ /**
30
+ * Creates transaction claiming the swap using a confirmed transaction data (for BTC on-chain swaps)
31
+ *
32
+ * @param signer
33
+ * @param swapData swap to claim
34
+ * @param tx bitcoin transaction that satisfies the swap condition
35
+ * @param requiredConfirmations
36
+ * @param vout vout of the bitcoin transaction that satisfies the swap condition
37
+ * @param commitedHeader commited header data from btc relay (fetched internally if null)
38
+ * @param synchronizer optional synchronizer to use in case we need to sync up the btc relay ourselves
39
+ * @param feeRate fee rate to be used for the transactions
40
+ */
41
+ txsClaimWithTxData(signer: string, swapData: StarknetSwapData, tx: {
42
+ blockhash: string;
43
+ confirmations: number;
44
+ txid: string;
45
+ hex: string;
46
+ height: number;
47
+ }, requiredConfirmations: number, vout: number, commitedHeader?: StarknetBtcStoredHeader, synchronizer?: RelaySynchronizer<StarknetBtcStoredHeader, StarknetTx, any>, feeRate?: string): Promise<StarknetTx[]>;
48
+ /**
49
+ * Get the estimated starknet transaction fee of the claim transaction
50
+ */
51
+ getClaimFee(swapData: StarknetSwapData, feeRate?: string): Promise<bigint>;
52
+ }
@@ -1,99 +1,99 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetSwapClaim = void 0;
4
- const base_1 = require("@atomiqlabs/base");
5
- const Utils_1 = require("../../../utils/Utils");
6
- const StarknetSwapModule_1 = require("../StarknetSwapModule");
7
- const StarknetAction_1 = require("../../chain/StarknetAction");
8
- const StarknetFees_1 = require("../../chain/modules/StarknetFees");
9
- class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
10
- /**
11
- * Claim action which uses the provided witness for claiming the swap
12
- *
13
- * @param signer
14
- * @param swapData
15
- * @param witness
16
- * @param claimHandlerGas
17
- * @private
18
- */
19
- Claim(signer, swapData, witness, claimHandlerGas) {
20
- return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.claim(swapData.toEscrowStruct(), witness), (0, StarknetFees_1.starknetGasAdd)(swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM, claimHandlerGas));
21
- }
22
- /**
23
- * Creates transactions claiming the swap using a secret (for HTLC swaps)
24
- *
25
- * @param signer
26
- * @param swapData swap to claim
27
- * @param secret hex encoded secret pre-image to the HTLC hash
28
- * @param checkExpiry whether to check if the swap is already expired (trying to claim an expired swap with a secret
29
- * is dangerous because we might end up revealing the secret to the counterparty without being able to claim the swap)
30
- * @param feeRate fee rate to use for the transaction
31
- */
32
- async txsClaimWithSecret(signer, swapData, secret, checkExpiry, feeRate) {
33
- //We need to be sure that this transaction confirms in time, otherwise we reveal the secret to the counterparty
34
- // and won't claim the funds
35
- if (checkExpiry && await this.contract.isExpired(swapData.claimer.toString(), swapData)) {
36
- throw new base_1.SwapDataVerificationError("Not enough time to reliably pay the invoice");
37
- }
38
- const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
39
- if (claimHandler == null)
40
- throw new base_1.SwapDataVerificationError("Unknown claim handler!");
41
- if (claimHandler.getType() !== base_1.ChainSwapType.HTLC)
42
- throw new base_1.SwapDataVerificationError("Invalid claim handler!");
43
- feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
44
- const { initialTxns, witness } = await claimHandler.getWitness(signer, swapData, secret, feeRate);
45
- const action = this.Claim(signer, swapData, witness, claimHandler.getGas(swapData));
46
- await action.addToTxs(initialTxns, feeRate);
47
- this.logger.debug("txsClaimWithSecret(): creating claim transaction, swap: " + swapData.getClaimHash() + " witness: ", witness.map(Utils_1.toHex));
48
- return initialTxns;
49
- }
50
- /**
51
- * Creates transaction claiming the swap using a confirmed transaction data (for BTC on-chain swaps)
52
- *
53
- * @param signer
54
- * @param swapData swap to claim
55
- * @param tx bitcoin transaction that satisfies the swap condition
56
- * @param requiredConfirmations
57
- * @param vout vout of the bitcoin transaction that satisfies the swap condition
58
- * @param commitedHeader commited header data from btc relay (fetched internally if null)
59
- * @param synchronizer optional synchronizer to use in case we need to sync up the btc relay ourselves
60
- * @param feeRate fee rate to be used for the transactions
61
- */
62
- async txsClaimWithTxData(signer, swapData, tx, requiredConfirmations, vout, commitedHeader, synchronizer, feeRate) {
63
- const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
64
- if (claimHandler == null)
65
- throw new base_1.SwapDataVerificationError("Unknown claim handler!");
66
- if (claimHandler.getType() !== base_1.ChainSwapType.CHAIN_NONCED &&
67
- claimHandler.getType() !== base_1.ChainSwapType.CHAIN_TXID &&
68
- claimHandler.getType() !== base_1.ChainSwapType.CHAIN)
69
- throw new base_1.SwapDataVerificationError("Invalid claim handler!");
70
- feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
71
- const { initialTxns, witness } = await claimHandler.getWitness(signer, swapData, {
72
- tx,
73
- vout,
74
- requiredConfirmations,
75
- commitedHeader,
76
- btcRelay: this.contract.btcRelay,
77
- synchronizer,
78
- }, feeRate);
79
- const action = this.Claim(signer, swapData, witness, claimHandler.getGas(swapData));
80
- await action.addToTxs(initialTxns, feeRate);
81
- return initialTxns;
82
- }
83
- /**
84
- * Get the estimated starknet transaction fee of the claim transaction
85
- */
86
- async getClaimFee(swapData, feeRate) {
87
- feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
88
- let gasRequired = swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM;
89
- const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
90
- if (claimHandler != null)
91
- gasRequired = (0, StarknetFees_1.starknetGasAdd)(gasRequired, claimHandler.getGas(swapData));
92
- return StarknetFees_1.StarknetFees.getGasFee(gasRequired, feeRate);
93
- }
94
- }
95
- exports.StarknetSwapClaim = StarknetSwapClaim;
96
- StarknetSwapClaim.GasCosts = {
97
- CLAIM: { l1DataGas: 750, l2Gas: 4000000, l1Gas: 0 },
98
- CLAIM_PAY_OUT: { l1DataGas: 900, l2Gas: 6000000, l1Gas: 0 }
99
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetSwapClaim = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
5
+ const Utils_1 = require("../../../utils/Utils");
6
+ const StarknetSwapModule_1 = require("../StarknetSwapModule");
7
+ const StarknetAction_1 = require("../../chain/StarknetAction");
8
+ const StarknetFees_1 = require("../../chain/modules/StarknetFees");
9
+ class StarknetSwapClaim extends StarknetSwapModule_1.StarknetSwapModule {
10
+ /**
11
+ * Claim action which uses the provided witness for claiming the swap
12
+ *
13
+ * @param signer
14
+ * @param swapData
15
+ * @param witness
16
+ * @param claimHandlerGas
17
+ * @private
18
+ */
19
+ Claim(signer, swapData, witness, claimHandlerGas) {
20
+ return new StarknetAction_1.StarknetAction(signer, this.root, this.swapContract.populateTransaction.claim(swapData.toEscrowStruct(), witness), (0, StarknetFees_1.starknetGasAdd)(swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM, claimHandlerGas));
21
+ }
22
+ /**
23
+ * Creates transactions claiming the swap using a secret (for HTLC swaps)
24
+ *
25
+ * @param signer
26
+ * @param swapData swap to claim
27
+ * @param secret hex encoded secret pre-image to the HTLC hash
28
+ * @param checkExpiry whether to check if the swap is already expired (trying to claim an expired swap with a secret
29
+ * is dangerous because we might end up revealing the secret to the counterparty without being able to claim the swap)
30
+ * @param feeRate fee rate to use for the transaction
31
+ */
32
+ async txsClaimWithSecret(signer, swapData, secret, checkExpiry, feeRate) {
33
+ //We need to be sure that this transaction confirms in time, otherwise we reveal the secret to the counterparty
34
+ // and won't claim the funds
35
+ if (checkExpiry && await this.contract.isExpired(swapData.claimer.toString(), swapData)) {
36
+ throw new base_1.SwapDataVerificationError("Not enough time to reliably pay the invoice");
37
+ }
38
+ const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
39
+ if (claimHandler == null)
40
+ throw new base_1.SwapDataVerificationError("Unknown claim handler!");
41
+ if (claimHandler.getType() !== base_1.ChainSwapType.HTLC)
42
+ throw new base_1.SwapDataVerificationError("Invalid claim handler!");
43
+ feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
44
+ const { initialTxns, witness } = await claimHandler.getWitness(signer, swapData, secret, feeRate);
45
+ const action = this.Claim(signer, swapData, witness, claimHandler.getGas(swapData));
46
+ await action.addToTxs(initialTxns, feeRate);
47
+ this.logger.debug("txsClaimWithSecret(): creating claim transaction, swap: " + swapData.getClaimHash() + " witness: ", witness.map(Utils_1.toHex));
48
+ return initialTxns;
49
+ }
50
+ /**
51
+ * Creates transaction claiming the swap using a confirmed transaction data (for BTC on-chain swaps)
52
+ *
53
+ * @param signer
54
+ * @param swapData swap to claim
55
+ * @param tx bitcoin transaction that satisfies the swap condition
56
+ * @param requiredConfirmations
57
+ * @param vout vout of the bitcoin transaction that satisfies the swap condition
58
+ * @param commitedHeader commited header data from btc relay (fetched internally if null)
59
+ * @param synchronizer optional synchronizer to use in case we need to sync up the btc relay ourselves
60
+ * @param feeRate fee rate to be used for the transactions
61
+ */
62
+ async txsClaimWithTxData(signer, swapData, tx, requiredConfirmations, vout, commitedHeader, synchronizer, feeRate) {
63
+ const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
64
+ if (claimHandler == null)
65
+ throw new base_1.SwapDataVerificationError("Unknown claim handler!");
66
+ if (claimHandler.getType() !== base_1.ChainSwapType.CHAIN_NONCED &&
67
+ claimHandler.getType() !== base_1.ChainSwapType.CHAIN_TXID &&
68
+ claimHandler.getType() !== base_1.ChainSwapType.CHAIN)
69
+ throw new base_1.SwapDataVerificationError("Invalid claim handler!");
70
+ feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
71
+ const { initialTxns, witness } = await claimHandler.getWitness(signer, swapData, {
72
+ tx,
73
+ vout,
74
+ requiredConfirmations,
75
+ commitedHeader,
76
+ btcRelay: this.contract.btcRelay,
77
+ synchronizer,
78
+ }, feeRate);
79
+ const action = this.Claim(signer, swapData, witness, claimHandler.getGas(swapData));
80
+ await action.addToTxs(initialTxns, feeRate);
81
+ return initialTxns;
82
+ }
83
+ /**
84
+ * Get the estimated starknet transaction fee of the claim transaction
85
+ */
86
+ async getClaimFee(swapData, feeRate) {
87
+ feeRate ?? (feeRate = await this.root.Fees.getFeeRate());
88
+ let gasRequired = swapData.payOut ? StarknetSwapClaim.GasCosts.CLAIM_PAY_OUT : StarknetSwapClaim.GasCosts.CLAIM;
89
+ const claimHandler = this.contract.claimHandlersByAddress[(0, Utils_1.toHex)(swapData.claimHandler)];
90
+ if (claimHandler != null)
91
+ gasRequired = (0, StarknetFees_1.starknetGasAdd)(gasRequired, claimHandler.getGas(swapData));
92
+ return StarknetFees_1.StarknetFees.getGasFee(gasRequired, feeRate);
93
+ }
94
+ }
95
+ exports.StarknetSwapClaim = StarknetSwapClaim;
96
+ StarknetSwapClaim.GasCosts = {
97
+ CLAIM: { l1DataGas: 750, l2Gas: 4000000, l1Gas: 0 },
98
+ CLAIM_PAY_OUT: { l1DataGas: 900, l2Gas: 6000000, l1Gas: 0 }
99
+ };