@atomiqlabs/chain-starknet 4.0.0-dev.22 → 4.0.0-dev.23

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 -38
  3. package/dist/index.js +55 -54
  4. package/dist/starknet/StarknetChainType.d.ts +13 -13
  5. package/dist/starknet/StarknetChainType.js +2 -2
  6. package/dist/starknet/StarknetInitializer.d.ts +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 -59
  19. package/dist/starknet/chain/StarknetChainInterface.js +97 -97
  20. package/dist/starknet/chain/StarknetModule.d.ts +9 -14
  21. package/dist/starknet/chain/StarknetModule.js +13 -13
  22. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  23. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  24. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  25. package/dist/starknet/chain/modules/StarknetAccounts.js +24 -24
  26. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +9 -9
  27. package/dist/starknet/chain/modules/StarknetAddresses.js +26 -26
  28. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +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 -77
  33. package/dist/starknet/chain/modules/StarknetFees.js +121 -114
  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 +110 -93
  39. package/dist/starknet/chain/modules/StarknetTransactions.js +351 -261
  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 -89
  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 -94
  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 -0
  93. package/dist/starknet/wallet/StarknetBrowserSigner.js +11 -0
  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 -0
  97. package/dist/starknet/wallet/StarknetPersistentSigner.js +243 -0
  98. package/dist/starknet/wallet/StarknetSigner.d.ts +18 -12
  99. package/dist/starknet/wallet/StarknetSigner.js +69 -47
  100. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.d.ts +7 -0
  101. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.js +35 -0
  102. package/dist/utils/Utils.d.ts +39 -37
  103. package/dist/utils/Utils.js +264 -260
  104. package/package.json +45 -43
  105. package/src/index.ts +48 -47
  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 -154
  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 +392 -285
  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 +12 -0
  151. package/src/starknet/wallet/StarknetPersistentSigner.ts +311 -0
  152. package/src/starknet/wallet/StarknetSigner.ts +84 -55
  153. package/src/starknet/wallet/{StarknetKeypairWallet.ts → accounts/StarknetKeypairWallet.ts} +44 -44
  154. package/src/utils/Utils.ts +262 -251
@@ -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,93 +1,110 @@
1
- import { StarknetModule } from "../StarknetModule";
2
- import { Call, DeployAccountContractPayload, DeployAccountContractTransaction, Invocation, InvocationsSignerDetails, BigNumberish } from "starknet";
3
- import { StarknetSigner } from "../../wallet/StarknetSigner";
4
- export type StarknetTx = ({
5
- type: "DEPLOY_ACCOUNT";
6
- tx: DeployAccountContractPayload;
7
- signed?: DeployAccountContractTransaction;
8
- } | {
9
- type: "INVOKE";
10
- tx: Array<Call>;
11
- signed?: Invocation;
12
- }) & {
13
- details: InvocationsSignerDetails & {
14
- maxFee?: BigNumberish;
15
- };
16
- txId?: string;
17
- };
18
- export declare class StarknetTransactions extends StarknetModule {
19
- private readonly latestConfirmedNonces;
20
- private cbkBeforeTxSigned;
21
- /**
22
- * Waits for transaction confirmation using WS subscription and occasional HTTP polling, also re-sends
23
- * the transaction at regular interval
24
- *
25
- * @param tx starknet transaction to wait for confirmation for & keep re-sending until it confirms
26
- * @param abortSignal signal to abort waiting for tx confirmation
27
- * @private
28
- */
29
- private confirmTransaction;
30
- /**
31
- * Prepares starknet transactions, checks if the account is deployed, assigns nonces if needed & calls beforeTxSigned callback
32
- *
33
- * @param signer
34
- * @param txs
35
- * @private
36
- */
37
- private prepareTransactions;
38
- /**
39
- * Sends out a signed transaction to the RPC
40
- *
41
- * @param tx Starknet tx to send
42
- * @param onBeforePublish a callback called before every transaction is published
43
- * @param signer
44
- * @private
45
- */
46
- private sendSignedTransaction;
47
- /**
48
- * Prepares, signs , sends (in parallel or sequentially) & optionally waits for confirmation
49
- * of a batch of starknet transactions
50
- *
51
- * @param signer
52
- * @param txs transactions to send
53
- * @param waitForConfirmation whether to wait for transaction confirmations (this also makes sure the transactions
54
- * are re-sent at regular intervals)
55
- * @param abortSignal abort signal to abort waiting for transaction confirmations
56
- * @param parallel whether the send all the transaction at once in parallel or sequentially (such that transactions
57
- * are executed in order)
58
- * @param onBeforePublish a callback called before every transaction is published
59
- */
60
- sendAndConfirm(signer: StarknetSigner, txs: StarknetTx[], waitForConfirmation?: boolean, abortSignal?: AbortSignal, parallel?: boolean, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
61
- /**
62
- * Serializes the solana transaction, saves the transaction, signers & last valid blockheight
63
- *
64
- * @param tx
65
- */
66
- serializeTx(tx: StarknetTx): Promise<string>;
67
- /**
68
- * Deserializes saved solana transaction, extracting the transaction, signers & last valid blockheight
69
- *
70
- * @param txData
71
- */
72
- deserializeTx(txData: string): Promise<StarknetTx>;
73
- /**
74
- * Gets the status of the raw starknet transaction
75
- *
76
- * @param tx
77
- */
78
- getTxStatus(tx: string): Promise<"pending" | "success" | "not_found" | "reverted">;
79
- /**
80
- * Gets the status of the starknet transaction with a specific txId
81
- *
82
- * @param txId
83
- */
84
- _getTxIdStatus(txId: string): Promise<"pending" | "success" | "not_found" | "reverted" | "rejected">;
85
- /**
86
- * Gets the status of the starknet transaction with a specific txId
87
- *
88
- * @param txId
89
- */
90
- getTxIdStatus(txId: string): Promise<"pending" | "success" | "not_found" | "reverted">;
91
- onBeforeTxSigned(callback: (tx: StarknetTx) => Promise<void>): void;
92
- offBeforeTxSigned(callback: (tx: StarknetTx) => Promise<void>): boolean;
93
- }
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
+ }