@atomiqlabs/chain-starknet 4.0.0-dev.26 → 4.0.0-dev.28

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 (154) hide show
  1. package/LICENSE +201 -201
  2. package/dist/index.d.ts +39 -39
  3. package/dist/index.js +55 -55
  4. package/dist/starknet/StarknetChainType.d.ts +13 -13
  5. package/dist/starknet/StarknetChainType.js +2 -2
  6. package/dist/starknet/StarknetInitializer.d.ts +28 -28
  7. package/dist/starknet/StarknetInitializer.js +69 -69
  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 +19 -19
  17. package/dist/starknet/chain/StarknetAction.js +73 -73
  18. package/dist/starknet/chain/StarknetChainInterface.d.ts +54 -54
  19. package/dist/starknet/chain/StarknetChainInterface.js +97 -97
  20. package/dist/starknet/chain/StarknetModule.d.ts +9 -9
  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 +20 -20
  29. package/dist/starknet/chain/modules/StarknetBlocks.js +64 -64
  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 +82 -82
  33. package/dist/starknet/chain/modules/StarknetFees.js +121 -121
  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 +69 -69
  37. package/dist/starknet/chain/modules/StarknetTokens.js +102 -102
  38. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +111 -110
  39. package/dist/starknet/chain/modules/StarknetTransactions.js +359 -351
  40. package/dist/starknet/contract/StarknetContractBase.d.ts +13 -13
  41. package/dist/starknet/contract/StarknetContractBase.js +20 -20
  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 +84 -84
  49. package/dist/starknet/events/StarknetChainEventsBrowser.js +307 -307
  50. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +41 -41
  51. package/dist/starknet/provider/RpcProviderWithRetries.js +70 -70
  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 +89 -89
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +477 -477
  56. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +49 -49
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +145 -145
  58. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +25 -25
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +72 -72
  60. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
  61. package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
  62. package/dist/starknet/swaps/StarknetSwapContract.d.ts +197 -197
  63. package/dist/starknet/swaps/StarknetSwapContract.js +440 -440
  64. package/dist/starknet/swaps/StarknetSwapData.d.ts +74 -74
  65. package/dist/starknet/swaps/StarknetSwapData.js +325 -325
  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 +94 -94
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.js +235 -235
  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/StarknetBrowserSigner.d.ts +5 -5
  93. package/dist/starknet/wallet/StarknetBrowserSigner.js +11 -11
  94. package/dist/starknet/wallet/StarknetKeypairWallet.d.ts +7 -7
  95. package/dist/starknet/wallet/StarknetKeypairWallet.js +35 -35
  96. package/dist/starknet/wallet/StarknetPersistentSigner.d.ts +33 -33
  97. package/dist/starknet/wallet/StarknetPersistentSigner.js +248 -243
  98. package/dist/starknet/wallet/StarknetSigner.d.ts +18 -18
  99. package/dist/starknet/wallet/StarknetSigner.js +69 -69
  100. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.d.ts +7 -7
  101. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.js +35 -35
  102. package/dist/utils/Utils.d.ts +39 -39
  103. package/dist/utils/Utils.js +264 -264
  104. package/package.json +45 -45
  105. package/src/index.ts +48 -48
  106. package/src/starknet/StarknetChainType.ts +28 -28
  107. package/src/starknet/StarknetInitializer.ts +110 -110
  108. package/src/starknet/btcrelay/BtcRelayAbi.ts +338 -338
  109. package/src/starknet/btcrelay/StarknetBtcRelay.ts +494 -494
  110. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +100 -100
  111. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +141 -141
  112. package/src/starknet/chain/StarknetAction.ts +85 -85
  113. package/src/starknet/chain/StarknetChainInterface.ts +165 -165
  114. package/src/starknet/chain/StarknetModule.ts +19 -19
  115. package/src/starknet/chain/modules/ERC20Abi.ts +1029 -1029
  116. package/src/starknet/chain/modules/StarknetAccounts.ts +25 -25
  117. package/src/starknet/chain/modules/StarknetAddresses.ts +22 -22
  118. package/src/starknet/chain/modules/StarknetBlocks.ts +75 -75
  119. package/src/starknet/chain/modules/StarknetEvents.ts +104 -104
  120. package/src/starknet/chain/modules/StarknetFees.ts +162 -162
  121. package/src/starknet/chain/modules/StarknetSignatures.ts +91 -91
  122. package/src/starknet/chain/modules/StarknetTokens.ts +120 -120
  123. package/src/starknet/chain/modules/StarknetTransactions.ts +399 -392
  124. package/src/starknet/contract/StarknetContractBase.ts +30 -30
  125. package/src/starknet/contract/StarknetContractModule.ts +16 -16
  126. package/src/starknet/contract/modules/StarknetContractEvents.ts +134 -134
  127. package/src/starknet/events/StarknetChainEvents.ts +67 -67
  128. package/src/starknet/events/StarknetChainEventsBrowser.ts +420 -420
  129. package/src/starknet/provider/RpcProviderWithRetries.ts +83 -83
  130. package/src/starknet/spv_swap/SpvVaultContractAbi.ts +656 -656
  131. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +591 -591
  132. package/src/starknet/spv_swap/StarknetSpvVaultData.ts +195 -195
  133. package/src/starknet/spv_swap/StarknetSpvWithdrawalData.ts +79 -79
  134. package/src/starknet/swaps/EscrowManagerAbi.ts +582 -582
  135. package/src/starknet/swaps/StarknetSwapContract.ts +668 -668
  136. package/src/starknet/swaps/StarknetSwapData.ts +455 -455
  137. package/src/starknet/swaps/StarknetSwapModule.ts +17 -17
  138. package/src/starknet/swaps/handlers/IHandler.ts +20 -20
  139. package/src/starknet/swaps/handlers/claim/ClaimHandlers.ts +23 -23
  140. package/src/starknet/swaps/handlers/claim/HashlockClaimHandler.ts +53 -53
  141. package/src/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +73 -73
  142. package/src/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +67 -67
  143. package/src/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +50 -50
  144. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +102 -102
  145. package/src/starknet/swaps/handlers/refund/TimelockRefundHandler.ts +38 -38
  146. package/src/starknet/swaps/modules/StarknetLpVault.ts +147 -147
  147. package/src/starknet/swaps/modules/StarknetSwapClaim.ts +141 -141
  148. package/src/starknet/swaps/modules/StarknetSwapInit.ts +300 -300
  149. package/src/starknet/swaps/modules/StarknetSwapRefund.ts +196 -196
  150. package/src/starknet/wallet/StarknetBrowserSigner.ts +11 -11
  151. package/src/starknet/wallet/StarknetPersistentSigner.ts +314 -310
  152. package/src/starknet/wallet/StarknetSigner.ts +84 -84
  153. package/src/starknet/wallet/accounts/StarknetKeypairWallet.ts +44 -44
  154. package/src/utils/Utils.ts +262 -262
@@ -1,69 +1,69 @@
1
- import { StarknetModule } from "../StarknetModule";
2
- import { StarknetAction } from "../StarknetAction";
3
- export declare class StarknetTokens extends StarknetModule {
4
- static readonly ERC20_ETH = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
5
- static readonly ERC20_STRK = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d";
6
- static readonly GasCosts: {
7
- TRANSFER: {
8
- l1DataGas: number;
9
- l2Gas: number;
10
- l1Gas: number;
11
- };
12
- APPROVE: {
13
- l1DataGas: number;
14
- l2Gas: number;
15
- l1Gas: number;
16
- };
17
- };
18
- private getContract;
19
- /**
20
- * Action for transferring the erc20 token
21
- *
22
- * @param signer
23
- * @param recipient
24
- * @param token
25
- * @param amount
26
- * @constructor
27
- * @private
28
- */
29
- private Transfer;
30
- /**
31
- * Approves spend of tokens for a specific spender
32
- *
33
- * @param signer
34
- * @param spender
35
- * @param token
36
- * @param amount
37
- * @constructor
38
- * @private
39
- */
40
- Approve(signer: string, spender: string, token: string, amount: bigint): StarknetAction;
41
- /**
42
- * Checks if the provided string is a valid starknet token
43
- *
44
- * @param token
45
- */
46
- isValidToken(token: string): boolean;
47
- /**
48
- * Returns the token balance of the address
49
- *
50
- * @param address
51
- * @param token
52
- */
53
- getTokenBalance(address: string, token: string): Promise<bigint>;
54
- /**
55
- * Returns the native currency address, return the default used by the fee module
56
- */
57
- getNativeCurrencyAddress(): string;
58
- /**
59
- * Creates transactions for sending the over the tokens
60
- *
61
- * @param signer
62
- * @param token token to send
63
- * @param amount amount of the token to send
64
- * @param recipient recipient's address
65
- * @param feeRate fee rate to use for the transactions
66
- * @private
67
- */
68
- txsTransfer(signer: string, token: string, amount: bigint, recipient: string, feeRate?: string): Promise<import("./StarknetTransactions").StarknetTx[]>;
69
- }
1
+ import { StarknetModule } from "../StarknetModule";
2
+ import { StarknetAction } from "../StarknetAction";
3
+ export declare class StarknetTokens extends StarknetModule {
4
+ static readonly ERC20_ETH = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
5
+ static readonly ERC20_STRK = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d";
6
+ static readonly GasCosts: {
7
+ TRANSFER: {
8
+ l1DataGas: number;
9
+ l2Gas: number;
10
+ l1Gas: number;
11
+ };
12
+ APPROVE: {
13
+ l1DataGas: number;
14
+ l2Gas: number;
15
+ l1Gas: number;
16
+ };
17
+ };
18
+ private getContract;
19
+ /**
20
+ * Action for transferring the erc20 token
21
+ *
22
+ * @param signer
23
+ * @param recipient
24
+ * @param token
25
+ * @param amount
26
+ * @constructor
27
+ * @private
28
+ */
29
+ private Transfer;
30
+ /**
31
+ * Approves spend of tokens for a specific spender
32
+ *
33
+ * @param signer
34
+ * @param spender
35
+ * @param token
36
+ * @param amount
37
+ * @constructor
38
+ * @private
39
+ */
40
+ Approve(signer: string, spender: string, token: string, amount: bigint): StarknetAction;
41
+ /**
42
+ * Checks if the provided string is a valid starknet token
43
+ *
44
+ * @param token
45
+ */
46
+ isValidToken(token: string): boolean;
47
+ /**
48
+ * Returns the token balance of the address
49
+ *
50
+ * @param address
51
+ * @param token
52
+ */
53
+ getTokenBalance(address: string, token: string): Promise<bigint>;
54
+ /**
55
+ * Returns the native currency address, return the default used by the fee module
56
+ */
57
+ getNativeCurrencyAddress(): string;
58
+ /**
59
+ * Creates transactions for sending the over the tokens
60
+ *
61
+ * @param signer
62
+ * @param token token to send
63
+ * @param amount amount of the token to send
64
+ * @param recipient recipient's address
65
+ * @param feeRate fee rate to use for the transactions
66
+ * @private
67
+ */
68
+ txsTransfer(signer: string, token: string, amount: bigint, recipient: string, feeRate?: string): Promise<import("./StarknetTransactions").StarknetTx[]>;
69
+ }
@@ -1,102 +1,102 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetTokens = void 0;
4
- const StarknetModule_1 = require("../StarknetModule");
5
- const StarknetAction_1 = require("../StarknetAction");
6
- const ERC20Abi_1 = require("./ERC20Abi");
7
- const starknet_1 = require("starknet");
8
- const Utils_1 = require("../../../utils/Utils");
9
- const StarknetAddresses_1 = require("./StarknetAddresses");
10
- class StarknetTokens extends StarknetModule_1.StarknetModule {
11
- getContract(address) {
12
- return new starknet_1.Contract({
13
- abi: ERC20Abi_1.ERC20Abi,
14
- address: address,
15
- providerOrAccount: this.root.provider
16
- }).typedv2(ERC20Abi_1.ERC20Abi);
17
- }
18
- /**
19
- * Action for transferring the erc20 token
20
- *
21
- * @param signer
22
- * @param recipient
23
- * @param token
24
- * @param amount
25
- * @constructor
26
- * @private
27
- */
28
- Transfer(signer, recipient, token, amount) {
29
- const erc20 = this.getContract(token);
30
- return new StarknetAction_1.StarknetAction(signer, this.root, erc20.populateTransaction.transfer(recipient, amount), StarknetTokens.GasCosts.TRANSFER);
31
- }
32
- /**
33
- * Approves spend of tokens for a specific spender
34
- *
35
- * @param signer
36
- * @param spender
37
- * @param token
38
- * @param amount
39
- * @constructor
40
- * @private
41
- */
42
- Approve(signer, spender, token, amount) {
43
- const erc20 = this.getContract(token);
44
- return new StarknetAction_1.StarknetAction(signer, this.root, erc20.populateTransaction.approve(spender, amount), StarknetTokens.GasCosts.APPROVE);
45
- }
46
- ///////////////////
47
- //// Tokens
48
- /**
49
- * Checks if the provided string is a valid starknet token
50
- *
51
- * @param token
52
- */
53
- isValidToken(token) {
54
- return StarknetAddresses_1.StarknetAddresses.isValidAddress(token);
55
- }
56
- /**
57
- * Returns the token balance of the address
58
- *
59
- * @param address
60
- * @param token
61
- */
62
- async getTokenBalance(address, token) {
63
- const erc20 = this.getContract(token);
64
- const balance = await erc20.balance_of(address);
65
- const balanceBN = (0, Utils_1.toBigInt)(balance);
66
- this.logger.debug("getTokenBalance(): token balance fetched, token: " + token +
67
- " address: " + address + " amount: " + balanceBN.toString());
68
- return balanceBN;
69
- }
70
- /**
71
- * Returns the native currency address, return the default used by the fee module
72
- */
73
- getNativeCurrencyAddress() {
74
- return this.root.Fees.getDefaultGasToken();
75
- }
76
- ///////////////////
77
- //// Transfers
78
- /**
79
- * Creates transactions for sending the over the tokens
80
- *
81
- * @param signer
82
- * @param token token to send
83
- * @param amount amount of the token to send
84
- * @param recipient recipient's address
85
- * @param feeRate fee rate to use for the transactions
86
- * @private
87
- */
88
- async txsTransfer(signer, token, amount, recipient, feeRate) {
89
- const action = this.Transfer(signer, recipient, token, amount);
90
- feeRate = feeRate ?? await this.root.Fees.getFeeRate();
91
- this.logger.debug("txsTransfer(): transfer TX created, recipient: " + recipient.toString() +
92
- " token: " + token.toString() + " amount: " + amount.toString(10));
93
- return [await action.tx(feeRate)];
94
- }
95
- }
96
- exports.StarknetTokens = StarknetTokens;
97
- StarknetTokens.ERC20_ETH = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
98
- StarknetTokens.ERC20_STRK = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d";
99
- StarknetTokens.GasCosts = {
100
- TRANSFER: { l1DataGas: 400, l2Gas: 4000000, l1Gas: 0 },
101
- APPROVE: { l1DataGas: 400, l2Gas: 4000000, l1Gas: 0 }
102
- };
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetTokens = void 0;
4
+ const StarknetModule_1 = require("../StarknetModule");
5
+ const StarknetAction_1 = require("../StarknetAction");
6
+ const ERC20Abi_1 = require("./ERC20Abi");
7
+ const starknet_1 = require("starknet");
8
+ const Utils_1 = require("../../../utils/Utils");
9
+ const StarknetAddresses_1 = require("./StarknetAddresses");
10
+ class StarknetTokens extends StarknetModule_1.StarknetModule {
11
+ getContract(address) {
12
+ return new starknet_1.Contract({
13
+ abi: ERC20Abi_1.ERC20Abi,
14
+ address: address,
15
+ providerOrAccount: this.root.provider
16
+ }).typedv2(ERC20Abi_1.ERC20Abi);
17
+ }
18
+ /**
19
+ * Action for transferring the erc20 token
20
+ *
21
+ * @param signer
22
+ * @param recipient
23
+ * @param token
24
+ * @param amount
25
+ * @constructor
26
+ * @private
27
+ */
28
+ Transfer(signer, recipient, token, amount) {
29
+ const erc20 = this.getContract(token);
30
+ return new StarknetAction_1.StarknetAction(signer, this.root, erc20.populateTransaction.transfer(recipient, amount), StarknetTokens.GasCosts.TRANSFER);
31
+ }
32
+ /**
33
+ * Approves spend of tokens for a specific spender
34
+ *
35
+ * @param signer
36
+ * @param spender
37
+ * @param token
38
+ * @param amount
39
+ * @constructor
40
+ * @private
41
+ */
42
+ Approve(signer, spender, token, amount) {
43
+ const erc20 = this.getContract(token);
44
+ return new StarknetAction_1.StarknetAction(signer, this.root, erc20.populateTransaction.approve(spender, amount), StarknetTokens.GasCosts.APPROVE);
45
+ }
46
+ ///////////////////
47
+ //// Tokens
48
+ /**
49
+ * Checks if the provided string is a valid starknet token
50
+ *
51
+ * @param token
52
+ */
53
+ isValidToken(token) {
54
+ return StarknetAddresses_1.StarknetAddresses.isValidAddress(token);
55
+ }
56
+ /**
57
+ * Returns the token balance of the address
58
+ *
59
+ * @param address
60
+ * @param token
61
+ */
62
+ async getTokenBalance(address, token) {
63
+ const erc20 = this.getContract(token);
64
+ const balance = await erc20.balance_of(address);
65
+ const balanceBN = (0, Utils_1.toBigInt)(balance);
66
+ this.logger.debug("getTokenBalance(): token balance fetched, token: " + token +
67
+ " address: " + address + " amount: " + balanceBN.toString());
68
+ return balanceBN;
69
+ }
70
+ /**
71
+ * Returns the native currency address, return the default used by the fee module
72
+ */
73
+ getNativeCurrencyAddress() {
74
+ return this.root.Fees.getDefaultGasToken();
75
+ }
76
+ ///////////////////
77
+ //// Transfers
78
+ /**
79
+ * Creates transactions for sending the over the tokens
80
+ *
81
+ * @param signer
82
+ * @param token token to send
83
+ * @param amount amount of the token to send
84
+ * @param recipient recipient's address
85
+ * @param feeRate fee rate to use for the transactions
86
+ * @private
87
+ */
88
+ async txsTransfer(signer, token, amount, recipient, feeRate) {
89
+ const action = this.Transfer(signer, recipient, token, amount);
90
+ feeRate = feeRate ?? await this.root.Fees.getFeeRate();
91
+ this.logger.debug("txsTransfer(): transfer TX created, recipient: " + recipient.toString() +
92
+ " token: " + token.toString() + " amount: " + amount.toString(10));
93
+ return [await action.tx(feeRate)];
94
+ }
95
+ }
96
+ exports.StarknetTokens = StarknetTokens;
97
+ StarknetTokens.ERC20_ETH = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7";
98
+ StarknetTokens.ERC20_STRK = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d";
99
+ StarknetTokens.GasCosts = {
100
+ TRANSFER: { l1DataGas: 400, l2Gas: 4000000, l1Gas: 0 },
101
+ APPROVE: { l1DataGas: 400, l2Gas: 4000000, l1Gas: 0 }
102
+ };
@@ -1,110 +1,111 @@
1
- import { StarknetModule } from "../StarknetModule";
2
- import { Call, DeployAccountContractPayload, DeployAccountContractTransaction, Invocation, InvocationsSignerDetails, BigNumberish } from "starknet";
3
- import { StarknetSigner } from "../../wallet/StarknetSigner";
4
- export type StarknetTxBase = {
5
- details: InvocationsSignerDetails & {
6
- maxFee?: BigNumberish;
7
- };
8
- txId?: string;
9
- };
10
- export type StarknetTxInvoke = StarknetTxBase & {
11
- type: "INVOKE";
12
- tx: Array<Call>;
13
- signed?: Invocation;
14
- };
15
- export declare function isStarknetTxInvoke(obj: any): obj is StarknetTxInvoke;
16
- export type StarknetTxDeployAccount = StarknetTxBase & {
17
- type: "DEPLOY_ACCOUNT";
18
- tx: DeployAccountContractPayload;
19
- signed?: DeployAccountContractTransaction;
20
- };
21
- export declare function isStarknetTxDeployAccount(obj: any): obj is StarknetTxDeployAccount;
22
- export type StarknetTx = StarknetTxInvoke | StarknetTxDeployAccount;
23
- export declare class StarknetTransactions extends StarknetModule {
24
- private readonly latestConfirmedNonces;
25
- private readonly latestPendingNonces;
26
- private readonly latestSignedNonces;
27
- readonly _cbksBeforeTxReplace: ((oldTx: string, oldTxId: string, newTx: string, newTxId: string) => Promise<void>)[];
28
- private readonly cbksBeforeTxSigned;
29
- readonly _knownTxSet: Set<string>;
30
- sendTransaction(tx: StarknetTx): Promise<string>;
31
- /**
32
- * Returns the nonce of the account or 0, if the account is not deployed yet
33
- *
34
- * @param address
35
- */
36
- getNonce(address: string): Promise<bigint>;
37
- /**
38
- * Waits for transaction confirmation using WS subscription and occasional HTTP polling, also re-sends
39
- * the transaction at regular interval
40
- *
41
- * @param tx starknet transaction to wait for confirmation for & keep re-sending until it confirms
42
- * @param abortSignal signal to abort waiting for tx confirmation
43
- * @private
44
- */
45
- private confirmTransaction;
46
- /**
47
- * Prepares starknet transactions, checks if the account is deployed, assigns nonces if needed & calls beforeTxSigned callback
48
- *
49
- * @param signer
50
- * @param txs
51
- * @private
52
- */
53
- private prepareTransactions;
54
- /**
55
- * Sends out a signed transaction to the RPC
56
- *
57
- * @param tx Starknet tx to send
58
- * @param onBeforePublish a callback called before every transaction is published
59
- * @private
60
- */
61
- private sendSignedTransaction;
62
- /**
63
- * Prepares, signs , sends (in parallel or sequentially) & optionally waits for confirmation
64
- * of a batch of starknet transactions
65
- *
66
- * @param signer
67
- * @param txs transactions to send
68
- * @param waitForConfirmation whether to wait for transaction confirmations (this also makes sure the transactions
69
- * are re-sent at regular intervals)
70
- * @param abortSignal abort signal to abort waiting for transaction confirmations
71
- * @param parallel whether the send all the transaction at once in parallel or sequentially (such that transactions
72
- * are executed in order)
73
- * @param onBeforePublish a callback called before every transaction is published
74
- */
75
- sendAndConfirm(signer: StarknetSigner, txs: StarknetTx[], waitForConfirmation?: boolean, abortSignal?: AbortSignal, parallel?: boolean, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
76
- /**
77
- * Serializes the solana transaction, saves the transaction, signers & last valid blockheight
78
- *
79
- * @param tx
80
- */
81
- static serializeTx(tx: StarknetTx): string;
82
- /**
83
- * Deserializes saved solana transaction, extracting the transaction, signers & last valid blockheight
84
- *
85
- * @param txData
86
- */
87
- static deserializeTx(txData: string): StarknetTx;
88
- /**
89
- * Gets the status of the raw starknet transaction
90
- *
91
- * @param tx
92
- */
93
- getTxStatus(tx: string): Promise<"pending" | "success" | "not_found" | "reverted">;
94
- /**
95
- * Gets the status of the starknet transaction with a specific txId
96
- *
97
- * @param txId
98
- */
99
- _getTxIdStatus(txId: string): Promise<"pending" | "success" | "not_found" | "reverted" | "rejected">;
100
- /**
101
- * Gets the status of the starknet transaction with a specific txId
102
- *
103
- * @param txId
104
- */
105
- getTxIdStatus(txId: string): Promise<"pending" | "success" | "not_found" | "reverted">;
106
- onBeforeTxReplace(callback: (oldTx: string, oldTxId: string, newTx: string, newTxId: string) => Promise<void>): void;
107
- offBeforeTxReplace(callback: (oldTx: string, oldTxId: string, newTx: string, newTxId: string) => Promise<void>): boolean;
108
- onBeforeTxSigned(callback: (tx: StarknetTx) => Promise<void>): void;
109
- offBeforeTxSigned(callback: (tx: StarknetTx) => Promise<void>): boolean;
110
- }
1
+ import { StarknetModule } from "../StarknetModule";
2
+ import { Call, DeployAccountContractPayload, DeployAccountContractTransaction, Invocation, InvocationsSignerDetails, BigNumberish, BlockTag } from "starknet";
3
+ import { StarknetSigner } from "../../wallet/StarknetSigner";
4
+ export type StarknetTxBase = {
5
+ details: InvocationsSignerDetails & {
6
+ maxFee?: BigNumberish;
7
+ };
8
+ txId?: string;
9
+ };
10
+ export type StarknetTxInvoke = StarknetTxBase & {
11
+ type: "INVOKE";
12
+ tx: Array<Call>;
13
+ signed?: Invocation;
14
+ };
15
+ export declare function isStarknetTxInvoke(obj: any): obj is StarknetTxInvoke;
16
+ export type StarknetTxDeployAccount = StarknetTxBase & {
17
+ type: "DEPLOY_ACCOUNT";
18
+ tx: DeployAccountContractPayload;
19
+ signed?: DeployAccountContractTransaction;
20
+ };
21
+ export declare function isStarknetTxDeployAccount(obj: any): obj is StarknetTxDeployAccount;
22
+ export type StarknetTx = StarknetTxInvoke | StarknetTxDeployAccount;
23
+ export declare class StarknetTransactions extends StarknetModule {
24
+ private readonly latestConfirmedNonces;
25
+ private readonly latestPendingNonces;
26
+ private readonly latestSignedNonces;
27
+ readonly _cbksBeforeTxReplace: ((oldTx: string, oldTxId: string, newTx: string, newTxId: string) => Promise<void>)[];
28
+ private readonly cbksBeforeTxSigned;
29
+ readonly _knownTxSet: Set<string>;
30
+ sendTransaction(tx: StarknetTx): Promise<string>;
31
+ /**
32
+ * Returns the nonce of the account or 0, if the account is not deployed yet
33
+ *
34
+ * @param address
35
+ * @param blockTag
36
+ */
37
+ getNonce(address: string, blockTag?: BlockTag): Promise<bigint>;
38
+ /**
39
+ * Waits for transaction confirmation using WS subscription and occasional HTTP polling, also re-sends
40
+ * the transaction at regular interval
41
+ *
42
+ * @param tx starknet transaction to wait for confirmation for & keep re-sending until it confirms
43
+ * @param abortSignal signal to abort waiting for tx confirmation
44
+ * @private
45
+ */
46
+ private confirmTransaction;
47
+ /**
48
+ * Prepares starknet transactions, checks if the account is deployed, assigns nonces if needed & calls beforeTxSigned callback
49
+ *
50
+ * @param signer
51
+ * @param txs
52
+ * @private
53
+ */
54
+ private prepareTransactions;
55
+ /**
56
+ * Sends out a signed transaction to the RPC
57
+ *
58
+ * @param tx Starknet tx to send
59
+ * @param onBeforePublish a callback called before every transaction is published
60
+ * @private
61
+ */
62
+ private sendSignedTransaction;
63
+ /**
64
+ * Prepares, signs , sends (in parallel or sequentially) & optionally waits for confirmation
65
+ * of a batch of starknet transactions
66
+ *
67
+ * @param signer
68
+ * @param txs transactions to send
69
+ * @param waitForConfirmation whether to wait for transaction confirmations (this also makes sure the transactions
70
+ * are re-sent at regular intervals)
71
+ * @param abortSignal abort signal to abort waiting for transaction confirmations
72
+ * @param parallel whether the send all the transaction at once in parallel or sequentially (such that transactions
73
+ * are executed in order)
74
+ * @param onBeforePublish a callback called before every transaction is published
75
+ */
76
+ sendAndConfirm(signer: StarknetSigner, txs: StarknetTx[], waitForConfirmation?: boolean, abortSignal?: AbortSignal, parallel?: boolean, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
77
+ /**
78
+ * Serializes the starknet transaction, saves the transaction, signers & last valid blockheight
79
+ *
80
+ * @param tx
81
+ */
82
+ static serializeTx(tx: StarknetTx): string;
83
+ /**
84
+ * Deserializes saved starknet transaction, extracting the transaction, signers & last valid blockheight
85
+ *
86
+ * @param txData
87
+ */
88
+ static deserializeTx(txData: string): StarknetTx;
89
+ /**
90
+ * Gets the status of the raw starknet transaction
91
+ *
92
+ * @param tx
93
+ */
94
+ getTxStatus(tx: string): Promise<"pending" | "success" | "not_found" | "reverted">;
95
+ /**
96
+ * Gets the status of the starknet transaction with a specific txId
97
+ *
98
+ * @param txId
99
+ */
100
+ _getTxIdStatus(txId: string): Promise<"pending" | "success" | "not_found" | "reverted" | "rejected">;
101
+ /**
102
+ * Gets the status of the starknet transaction with a specific txId
103
+ *
104
+ * @param txId
105
+ */
106
+ getTxIdStatus(txId: string): Promise<"pending" | "success" | "not_found" | "reverted">;
107
+ onBeforeTxReplace(callback: (oldTx: string, oldTxId: string, newTx: string, newTxId: string) => Promise<void>): void;
108
+ offBeforeTxReplace(callback: (oldTx: string, oldTxId: string, newTx: string, newTxId: string) => Promise<void>): boolean;
109
+ onBeforeTxSigned(callback: (tx: StarknetTx) => Promise<void>): void;
110
+ offBeforeTxSigned(callback: (tx: StarknetTx) => Promise<void>): boolean;
111
+ }