@atomiqlabs/chain-starknet 2.0.0 → 3.0.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/LICENSE +201 -201
  2. package/dist/index.d.ts +38 -38
  3. package/dist/index.js +54 -54
  4. package/dist/starknet/StarknetChainType.d.ts +13 -13
  5. package/dist/starknet/StarknetChainType.js +2 -2
  6. package/dist/starknet/StarknetInitializer.d.ts +19 -19
  7. package/dist/starknet/StarknetInitializer.js +64 -64
  8. package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
  9. package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
  10. package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +186 -186
  11. package/dist/starknet/btcrelay/StarknetBtcRelay.js +379 -379
  12. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +31 -31
  13. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +74 -74
  14. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +51 -51
  15. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +113 -113
  16. package/dist/starknet/chain/StarknetAction.d.ts +27 -27
  17. package/dist/starknet/chain/StarknetAction.js +73 -73
  18. package/dist/starknet/chain/StarknetChainInterface.d.ts +52 -52
  19. package/dist/starknet/chain/StarknetChainInterface.js +91 -91
  20. package/dist/starknet/chain/StarknetModule.d.ts +14 -14
  21. package/dist/starknet/chain/StarknetModule.js +13 -13
  22. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  23. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  24. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  25. package/dist/starknet/chain/modules/StarknetAccounts.js +24 -24
  26. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +9 -9
  27. package/dist/starknet/chain/modules/StarknetAddresses.js +26 -26
  28. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +19 -19
  29. package/dist/starknet/chain/modules/StarknetBlocks.js +49 -49
  30. package/dist/starknet/chain/modules/StarknetEvents.d.ts +44 -44
  31. package/dist/starknet/chain/modules/StarknetEvents.js +88 -88
  32. package/dist/starknet/chain/modules/StarknetFees.d.ts +55 -55
  33. package/dist/starknet/chain/modules/StarknetFees.js +100 -100
  34. package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
  35. package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
  36. package/dist/starknet/chain/modules/StarknetTokens.d.ts +67 -67
  37. package/dist/starknet/chain/modules/StarknetTokens.js +98 -98
  38. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +93 -93
  39. package/dist/starknet/chain/modules/StarknetTransactions.js +255 -255
  40. package/dist/starknet/contract/StarknetContractBase.d.ts +13 -13
  41. package/dist/starknet/contract/StarknetContractBase.js +16 -16
  42. package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
  43. package/dist/starknet/contract/StarknetContractModule.js +11 -11
  44. package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +51 -51
  45. package/dist/starknet/contract/modules/StarknetContractEvents.js +97 -97
  46. package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
  47. package/dist/starknet/events/StarknetChainEvents.js +52 -52
  48. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +91 -91
  49. package/dist/starknet/events/StarknetChainEventsBrowser.js +294 -294
  50. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +21 -21
  51. package/dist/starknet/provider/RpcProviderWithRetries.js +32 -32
  52. package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
  53. package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
  54. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +65 -65
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +376 -376
  56. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +49 -49
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +144 -144
  58. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +24 -24
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +61 -61
  60. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +434 -405
  61. package/dist/starknet/swaps/EscrowManagerAbi.js +587 -547
  62. package/dist/starknet/swaps/StarknetSwapContract.d.ts +196 -196
  63. package/dist/starknet/swaps/StarknetSwapContract.js +395 -395
  64. package/dist/starknet/swaps/StarknetSwapData.d.ts +67 -67
  65. package/dist/starknet/swaps/StarknetSwapData.js +290 -281
  66. package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
  67. package/dist/starknet/swaps/StarknetSwapModule.js +11 -11
  68. package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
  69. package/dist/starknet/swaps/handlers/IHandler.js +2 -2
  70. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
  71. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
  72. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
  73. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
  74. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  75. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
  76. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  77. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
  78. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
  79. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
  80. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +45 -45
  81. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +52 -52
  82. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  83. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
  84. package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +69 -69
  85. package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
  86. package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +53 -53
  87. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +100 -100
  88. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +84 -84
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.js +164 -164
  90. package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +62 -62
  91. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +128 -128
  92. package/dist/starknet/wallet/StarknetKeypairWallet.d.ts +7 -7
  93. package/dist/starknet/wallet/StarknetKeypairWallet.js +30 -30
  94. package/dist/starknet/wallet/StarknetSigner.d.ts +12 -12
  95. package/dist/starknet/wallet/StarknetSigner.js +46 -46
  96. package/dist/utils/Utils.d.ts +37 -37
  97. package/dist/utils/Utils.js +257 -257
  98. package/package.json +37 -37
  99. package/src/index.ts +47 -47
  100. package/src/starknet/StarknetChainType.ts +28 -28
  101. package/src/starknet/StarknetInitializer.ts +95 -95
  102. package/src/starknet/btcrelay/BtcRelayAbi.ts +338 -338
  103. package/src/starknet/btcrelay/StarknetBtcRelay.ts +491 -491
  104. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +100 -100
  105. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +141 -141
  106. package/src/starknet/chain/StarknetAction.ts +90 -90
  107. package/src/starknet/chain/StarknetChainInterface.ts +149 -149
  108. package/src/starknet/chain/StarknetModule.ts +19 -19
  109. package/src/starknet/chain/modules/ERC20Abi.ts +1029 -1029
  110. package/src/starknet/chain/modules/StarknetAccounts.ts +25 -25
  111. package/src/starknet/chain/modules/StarknetAddresses.ts +22 -22
  112. package/src/starknet/chain/modules/StarknetBlocks.ts +58 -58
  113. package/src/starknet/chain/modules/StarknetEvents.ts +104 -104
  114. package/src/starknet/chain/modules/StarknetFees.ts +132 -132
  115. package/src/starknet/chain/modules/StarknetSignatures.ts +90 -90
  116. package/src/starknet/chain/modules/StarknetTokens.ts +116 -116
  117. package/src/starknet/chain/modules/StarknetTransactions.ts +277 -278
  118. package/src/starknet/contract/StarknetContractBase.ts +26 -26
  119. package/src/starknet/contract/StarknetContractModule.ts +16 -16
  120. package/src/starknet/contract/modules/StarknetContractEvents.ts +134 -134
  121. package/src/starknet/events/StarknetChainEvents.ts +67 -67
  122. package/src/starknet/events/StarknetChainEventsBrowser.ts +412 -412
  123. package/src/starknet/provider/RpcProviderWithRetries.ts +43 -43
  124. package/src/starknet/spv_swap/SpvVaultContractAbi.ts +656 -656
  125. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +477 -477
  126. package/src/starknet/spv_swap/StarknetSpvVaultData.ts +194 -194
  127. package/src/starknet/spv_swap/StarknetSpvWithdrawalData.ts +68 -68
  128. package/src/starknet/swaps/EscrowManagerAbi.ts +586 -546
  129. package/src/starknet/swaps/StarknetSwapContract.ts +605 -605
  130. package/src/starknet/swaps/StarknetSwapData.ts +403 -394
  131. package/src/starknet/swaps/StarknetSwapModule.ts +17 -17
  132. package/src/starknet/swaps/handlers/IHandler.ts +20 -20
  133. package/src/starknet/swaps/handlers/claim/ClaimHandlers.ts +23 -23
  134. package/src/starknet/swaps/handlers/claim/HashlockClaimHandler.ts +53 -53
  135. package/src/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +73 -73
  136. package/src/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +67 -67
  137. package/src/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +50 -50
  138. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +102 -102
  139. package/src/starknet/swaps/handlers/refund/TimelockRefundHandler.ts +38 -38
  140. package/src/starknet/swaps/modules/StarknetLpVault.ts +147 -147
  141. package/src/starknet/swaps/modules/StarknetSwapClaim.ts +141 -141
  142. package/src/starknet/swaps/modules/StarknetSwapInit.ts +225 -225
  143. package/src/starknet/swaps/modules/StarknetSwapRefund.ts +197 -197
  144. package/src/starknet/wallet/StarknetKeypairWallet.ts +39 -39
  145. package/src/starknet/wallet/StarknetSigner.ts +55 -55
  146. package/src/utils/Utils.ts +248 -248
@@ -1,100 +1,100 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetFees = void 0;
4
- const Utils_1 = require("../../../utils/Utils");
5
- const StarknetTokens_1 = require("./StarknetTokens");
6
- const MAX_FEE_AGE = 5000;
7
- class StarknetFees {
8
- constructor(provider, gasToken = "STRK", maxFeeRate = gasToken === "ETH" ? 100000000000 /*100 GWei*/ : 1000000000000000 /*100 * 10000 GWei*/, feeMultiplier = 1.25, da) {
9
- this.logger = (0, Utils_1.getLogger)("StarknetFees: ");
10
- this.blockFeeCache = null;
11
- this.provider = provider;
12
- this.gasToken = gasToken;
13
- this.maxFeeRate = BigInt(maxFeeRate);
14
- this.feeDA = da?.fee ?? "L1";
15
- this.nonceDA = da?.nonce ?? "L1";
16
- this.feeMultiplierPPM = BigInt(Math.floor(feeMultiplier * 1000000));
17
- }
18
- /**
19
- * Gets starknet fee rate
20
- *
21
- * @private
22
- * @returns {Promise<BN>} L1 gas price denominated in Wei
23
- */
24
- async _getFeeRate() {
25
- const block = await this.provider.getBlockWithTxHashes("latest");
26
- let l1GasCost = (0, Utils_1.toBigInt)(this.gasToken === "ETH" ? block.l1_gas_price.price_in_wei : block.l1_gas_price.price_in_fri);
27
- l1GasCost = l1GasCost * this.feeMultiplierPPM / 1000000n;
28
- this.logger.debug("_getFeeRate(): L1 fee rate: " + l1GasCost.toString(10));
29
- return l1GasCost;
30
- }
31
- /**
32
- * Gets the gas price with caching, format: <gas price in Wei>;<transaction version: v1/v3>
33
- *
34
- * @private
35
- */
36
- async getFeeRate() {
37
- if (this.blockFeeCache == null || Date.now() - this.blockFeeCache.timestamp > MAX_FEE_AGE) {
38
- let obj = {
39
- timestamp: Date.now(),
40
- feeRate: null
41
- };
42
- obj.feeRate = this._getFeeRate().catch(e => {
43
- if (this.blockFeeCache === obj)
44
- this.blockFeeCache = null;
45
- throw e;
46
- });
47
- this.blockFeeCache = obj;
48
- }
49
- let feeRate = await this.blockFeeCache.feeRate;
50
- if (feeRate > this.maxFeeRate)
51
- feeRate = this.maxFeeRate;
52
- const fee = feeRate.toString(10) + ";" + (this.gasToken === "ETH" ? "v1" : "v3");
53
- this.logger.debug("getFeeRate(): calculated fee: " + fee);
54
- return fee;
55
- }
56
- getDefaultGasToken() {
57
- return this.gasToken === "ETH" ? StarknetTokens_1.StarknetTokens.ERC20_ETH : StarknetTokens_1.StarknetTokens.ERC20_STRK;
58
- }
59
- /**
60
- * Calculates the total gas fee fee paid for a given gas limit at a given fee rate
61
- *
62
- * @param gas
63
- * @param feeRate
64
- */
65
- static getGasFee(gas, feeRate) {
66
- if (feeRate == null)
67
- return 0n;
68
- const arr = feeRate.split(";");
69
- const gasPrice = BigInt(arr[0]);
70
- return gasPrice * BigInt(gas);
71
- }
72
- static getGasToken(feeRate) {
73
- if (feeRate == null)
74
- return null;
75
- const arr = feeRate.split(";");
76
- const txVersion = arr[1];
77
- return txVersion === "v1" ? StarknetTokens_1.StarknetTokens.ERC20_ETH : StarknetTokens_1.StarknetTokens.ERC20_STRK;
78
- }
79
- getFeeDetails(L1GasLimit, L2GasLimit, feeRate) {
80
- if (feeRate == null)
81
- return null;
82
- const arr = feeRate.split(";");
83
- const gasPrice = BigInt(arr[0]);
84
- const version = arr[1];
85
- const maxFee = (0, Utils_1.toHex)(BigInt(L1GasLimit) * gasPrice, 16);
86
- return {
87
- maxFee: maxFee,
88
- version: version === "v1" ? "0x1" : "0x3",
89
- resourceBounds: {
90
- l1_gas: { max_amount: (0, Utils_1.toHex)(L1GasLimit, 16), max_price_per_unit: (0, Utils_1.toHex)(gasPrice, 16) },
91
- l2_gas: { max_amount: "0x0", max_price_per_unit: "0x0" }
92
- },
93
- tip: "0x0",
94
- paymasterData: [],
95
- nonceDataAvailabilityMode: this.nonceDA,
96
- feeDataAvailabilityMode: this.feeDA
97
- };
98
- }
99
- }
100
- exports.StarknetFees = StarknetFees;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetFees = void 0;
4
+ const Utils_1 = require("../../../utils/Utils");
5
+ const StarknetTokens_1 = require("./StarknetTokens");
6
+ const MAX_FEE_AGE = 5000;
7
+ class StarknetFees {
8
+ constructor(provider, gasToken = "STRK", maxFeeRate = gasToken === "ETH" ? 100000000000 /*100 GWei*/ : 1000000000000000 /*100 * 10000 GWei*/, feeMultiplier = 1.25, da) {
9
+ this.logger = (0, Utils_1.getLogger)("StarknetFees: ");
10
+ this.blockFeeCache = null;
11
+ this.provider = provider;
12
+ this.gasToken = gasToken;
13
+ this.maxFeeRate = BigInt(maxFeeRate);
14
+ this.feeDA = da?.fee ?? "L1";
15
+ this.nonceDA = da?.nonce ?? "L1";
16
+ this.feeMultiplierPPM = BigInt(Math.floor(feeMultiplier * 1000000));
17
+ }
18
+ /**
19
+ * Gets starknet fee rate
20
+ *
21
+ * @private
22
+ * @returns {Promise<BN>} L1 gas price denominated in Wei
23
+ */
24
+ async _getFeeRate() {
25
+ const block = await this.provider.getBlockWithTxHashes("latest");
26
+ let l1GasCost = (0, Utils_1.toBigInt)(this.gasToken === "ETH" ? block.l1_gas_price.price_in_wei : block.l1_gas_price.price_in_fri);
27
+ l1GasCost = l1GasCost * this.feeMultiplierPPM / 1000000n;
28
+ this.logger.debug("_getFeeRate(): L1 fee rate: " + l1GasCost.toString(10));
29
+ return l1GasCost;
30
+ }
31
+ /**
32
+ * Gets the gas price with caching, format: <gas price in Wei>;<transaction version: v1/v3>
33
+ *
34
+ * @private
35
+ */
36
+ async getFeeRate() {
37
+ if (this.blockFeeCache == null || Date.now() - this.blockFeeCache.timestamp > MAX_FEE_AGE) {
38
+ let obj = {
39
+ timestamp: Date.now(),
40
+ feeRate: null
41
+ };
42
+ obj.feeRate = this._getFeeRate().catch(e => {
43
+ if (this.blockFeeCache === obj)
44
+ this.blockFeeCache = null;
45
+ throw e;
46
+ });
47
+ this.blockFeeCache = obj;
48
+ }
49
+ let feeRate = await this.blockFeeCache.feeRate;
50
+ if (feeRate > this.maxFeeRate)
51
+ feeRate = this.maxFeeRate;
52
+ const fee = feeRate.toString(10) + ";" + (this.gasToken === "ETH" ? "v1" : "v3");
53
+ this.logger.debug("getFeeRate(): calculated fee: " + fee);
54
+ return fee;
55
+ }
56
+ getDefaultGasToken() {
57
+ return this.gasToken === "ETH" ? StarknetTokens_1.StarknetTokens.ERC20_ETH : StarknetTokens_1.StarknetTokens.ERC20_STRK;
58
+ }
59
+ /**
60
+ * Calculates the total gas fee fee paid for a given gas limit at a given fee rate
61
+ *
62
+ * @param gas
63
+ * @param feeRate
64
+ */
65
+ static getGasFee(gas, feeRate) {
66
+ if (feeRate == null)
67
+ return 0n;
68
+ const arr = feeRate.split(";");
69
+ const gasPrice = BigInt(arr[0]);
70
+ return gasPrice * BigInt(gas);
71
+ }
72
+ static getGasToken(feeRate) {
73
+ if (feeRate == null)
74
+ return null;
75
+ const arr = feeRate.split(";");
76
+ const txVersion = arr[1];
77
+ return txVersion === "v1" ? StarknetTokens_1.StarknetTokens.ERC20_ETH : StarknetTokens_1.StarknetTokens.ERC20_STRK;
78
+ }
79
+ getFeeDetails(L1GasLimit, L2GasLimit, feeRate) {
80
+ if (feeRate == null)
81
+ return null;
82
+ const arr = feeRate.split(";");
83
+ const gasPrice = BigInt(arr[0]);
84
+ const version = arr[1];
85
+ const maxFee = (0, Utils_1.toHex)(BigInt(L1GasLimit) * gasPrice, 16);
86
+ return {
87
+ maxFee: maxFee,
88
+ version: version === "v1" ? "0x1" : "0x3",
89
+ resourceBounds: {
90
+ l1_gas: { max_amount: (0, Utils_1.toHex)(L1GasLimit, 16), max_price_per_unit: (0, Utils_1.toHex)(gasPrice, 16) },
91
+ l2_gas: { max_amount: "0x0", max_price_per_unit: "0x0" }
92
+ },
93
+ tip: "0x0",
94
+ paymasterData: [],
95
+ nonceDataAvailabilityMode: this.nonceDA,
96
+ feeDataAvailabilityMode: this.feeDA
97
+ };
98
+ }
99
+ }
100
+ exports.StarknetFees = StarknetFees;
@@ -1,29 +1,29 @@
1
- import { Buffer } from "buffer";
2
- import { StarknetModule } from "../StarknetModule";
3
- import { StarknetSigner } from "../../wallet/StarknetSigner";
4
- import { StarknetType, TypedData } from "starknet";
5
- import { StarknetChainInterface } from "../StarknetChainInterface";
6
- export declare class StarknetSignatures extends StarknetModule {
7
- private readonly domain;
8
- constructor(root: StarknetChainInterface, domainName?: string);
9
- getTypedMessage(type: StarknetType[], typeName: string, message: object): TypedData;
10
- signTypedMessage(signer: StarknetSigner, type: StarknetType[], typeName: string, message: object): Promise<string>;
11
- isValidSignature(signature: string, address: string, type: StarknetType[], typeName: string, message: object): Promise<boolean>;
12
- /**
13
- * Produces a signature over the sha256 of a specified data Buffer, only works with providers which
14
- * expose their private key (i.e. backend based, not browser wallet based)
15
- *
16
- * @param signer
17
- * @param data data to sign
18
- */
19
- getDataSignature(signer: StarknetSigner, data: Buffer): Promise<string>;
20
- /**
21
- * Checks whether a signature is a valid signature produced by the account over a data message (computes
22
- * sha256 hash of the message)
23
- *
24
- * @param data signed data
25
- * @param signature data signature
26
- * @param address public key of the signer
27
- */
28
- isValidDataSignature(data: Buffer, signature: string, address: string): Promise<boolean>;
29
- }
1
+ import { Buffer } from "buffer";
2
+ import { StarknetModule } from "../StarknetModule";
3
+ import { StarknetSigner } from "../../wallet/StarknetSigner";
4
+ import { StarknetType, TypedData } from "starknet";
5
+ import { StarknetChainInterface } from "../StarknetChainInterface";
6
+ export declare class StarknetSignatures extends StarknetModule {
7
+ private readonly domain;
8
+ constructor(root: StarknetChainInterface, domainName?: string);
9
+ getTypedMessage(type: StarknetType[], typeName: string, message: object): TypedData;
10
+ signTypedMessage(signer: StarknetSigner, type: StarknetType[], typeName: string, message: object): Promise<string>;
11
+ isValidSignature(signature: string, address: string, type: StarknetType[], typeName: string, message: object): Promise<boolean>;
12
+ /**
13
+ * Produces a signature over the sha256 of a specified data Buffer, only works with providers which
14
+ * expose their private key (i.e. backend based, not browser wallet based)
15
+ *
16
+ * @param signer
17
+ * @param data data to sign
18
+ */
19
+ getDataSignature(signer: StarknetSigner, data: Buffer): Promise<string>;
20
+ /**
21
+ * Checks whether a signature is a valid signature produced by the account over a data message (computes
22
+ * sha256 hash of the message)
23
+ *
24
+ * @param data signed data
25
+ * @param signature data signature
26
+ * @param address public key of the signer
27
+ */
28
+ isValidDataSignature(data: Buffer, signature: string, address: string): Promise<boolean>;
29
+ }
@@ -1,72 +1,72 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetSignatures = void 0;
4
- const buffer_1 = require("buffer");
5
- const StarknetModule_1 = require("../StarknetModule");
6
- const starknet_1 = require("starknet");
7
- const Utils_1 = require("../../../utils/Utils");
8
- const sha2_1 = require("@noble/hashes/sha2");
9
- const StarknetDomain = [
10
- { name: 'name', type: 'shortstring' },
11
- { name: 'version', type: 'shortstring' },
12
- { name: 'chainId', type: 'shortstring' },
13
- { name: 'revision', type: 'shortstring' },
14
- ];
15
- const DataHash = [
16
- { name: 'Data hash', type: 'u256' }
17
- ];
18
- class StarknetSignatures extends StarknetModule_1.StarknetModule {
19
- constructor(root, domainName = "atomiq.exchange") {
20
- super(root);
21
- this.domain = {
22
- name: domainName,
23
- version: '1',
24
- chainId: starknet_1.shortString.decodeShortString(root.starknetChainId),
25
- revision: '1'
26
- };
27
- }
28
- getTypedMessage(type, typeName, message) {
29
- return {
30
- types: {
31
- StarknetDomain,
32
- [typeName]: type,
33
- },
34
- primaryType: typeName,
35
- domain: this.domain,
36
- message
37
- };
38
- }
39
- async signTypedMessage(signer, type, typeName, message) {
40
- const signature = await signer.account.signMessage(this.getTypedMessage(type, typeName, message));
41
- return JSON.stringify(starknet_1.stark.formatSignature(signature));
42
- }
43
- async isValidSignature(signature, address, type, typeName, message) {
44
- return new starknet_1.Account(this.provider, address, null).verifyMessage(this.getTypedMessage(type, typeName, message), JSON.parse(signature));
45
- }
46
- ///////////////////
47
- //// Data signatures
48
- /**
49
- * Produces a signature over the sha256 of a specified data Buffer, only works with providers which
50
- * expose their private key (i.e. backend based, not browser wallet based)
51
- *
52
- * @param signer
53
- * @param data data to sign
54
- */
55
- getDataSignature(signer, data) {
56
- const buff = buffer_1.Buffer.from((0, sha2_1.sha256)(data));
57
- return this.signTypedMessage(signer, DataHash, 'DataHash', { "Data hash": starknet_1.cairo.uint256((0, Utils_1.toHex)(buff)) });
58
- }
59
- /**
60
- * Checks whether a signature is a valid signature produced by the account over a data message (computes
61
- * sha256 hash of the message)
62
- *
63
- * @param data signed data
64
- * @param signature data signature
65
- * @param address public key of the signer
66
- */
67
- isValidDataSignature(data, signature, address) {
68
- const buff = buffer_1.Buffer.from((0, sha2_1.sha256)(data));
69
- return this.isValidSignature(signature, address, DataHash, 'DataHash', { "Data hash": starknet_1.cairo.uint256((0, Utils_1.toHex)(buff)) });
70
- }
71
- }
72
- exports.StarknetSignatures = StarknetSignatures;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetSignatures = void 0;
4
+ const buffer_1 = require("buffer");
5
+ const StarknetModule_1 = require("../StarknetModule");
6
+ const starknet_1 = require("starknet");
7
+ const Utils_1 = require("../../../utils/Utils");
8
+ const sha2_1 = require("@noble/hashes/sha2");
9
+ const StarknetDomain = [
10
+ { name: 'name', type: 'shortstring' },
11
+ { name: 'version', type: 'shortstring' },
12
+ { name: 'chainId', type: 'shortstring' },
13
+ { name: 'revision', type: 'shortstring' },
14
+ ];
15
+ const DataHash = [
16
+ { name: 'Data hash', type: 'u256' }
17
+ ];
18
+ class StarknetSignatures extends StarknetModule_1.StarknetModule {
19
+ constructor(root, domainName = "atomiq.exchange") {
20
+ super(root);
21
+ this.domain = {
22
+ name: domainName,
23
+ version: '1',
24
+ chainId: starknet_1.shortString.decodeShortString(root.starknetChainId),
25
+ revision: '1'
26
+ };
27
+ }
28
+ getTypedMessage(type, typeName, message) {
29
+ return {
30
+ types: {
31
+ StarknetDomain,
32
+ [typeName]: type,
33
+ },
34
+ primaryType: typeName,
35
+ domain: this.domain,
36
+ message
37
+ };
38
+ }
39
+ async signTypedMessage(signer, type, typeName, message) {
40
+ const signature = await signer.account.signMessage(this.getTypedMessage(type, typeName, message));
41
+ return JSON.stringify(starknet_1.stark.formatSignature(signature));
42
+ }
43
+ async isValidSignature(signature, address, type, typeName, message) {
44
+ return new starknet_1.Account(this.provider, address, null).verifyMessage(this.getTypedMessage(type, typeName, message), JSON.parse(signature));
45
+ }
46
+ ///////////////////
47
+ //// Data signatures
48
+ /**
49
+ * Produces a signature over the sha256 of a specified data Buffer, only works with providers which
50
+ * expose their private key (i.e. backend based, not browser wallet based)
51
+ *
52
+ * @param signer
53
+ * @param data data to sign
54
+ */
55
+ getDataSignature(signer, data) {
56
+ const buff = buffer_1.Buffer.from((0, sha2_1.sha256)(data));
57
+ return this.signTypedMessage(signer, DataHash, 'DataHash', { "Data hash": starknet_1.cairo.uint256((0, Utils_1.toHex)(buff)) });
58
+ }
59
+ /**
60
+ * Checks whether a signature is a valid signature produced by the account over a data message (computes
61
+ * sha256 hash of the message)
62
+ *
63
+ * @param data signed data
64
+ * @param signature data signature
65
+ * @param address public key of the signer
66
+ */
67
+ isValidDataSignature(data, signature, address) {
68
+ const buff = buffer_1.Buffer.from((0, sha2_1.sha256)(data));
69
+ return this.isValidSignature(signature, address, DataHash, 'DataHash', { "Data hash": starknet_1.cairo.uint256((0, Utils_1.toHex)(buff)) });
70
+ }
71
+ }
72
+ exports.StarknetSignatures = StarknetSignatures;
@@ -1,67 +1,67 @@
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
- l1: number;
9
- l2: number;
10
- };
11
- APPROVE: {
12
- l1: number;
13
- l2: number;
14
- };
15
- };
16
- private getContract;
17
- /**
18
- * Action for transferring the erc20 token
19
- *
20
- * @param signer
21
- * @param recipient
22
- * @param token
23
- * @param amount
24
- * @constructor
25
- * @private
26
- */
27
- private Transfer;
28
- /**
29
- * Approves spend of tokens for a specific spender
30
- *
31
- * @param signer
32
- * @param spender
33
- * @param token
34
- * @param amount
35
- * @constructor
36
- * @private
37
- */
38
- Approve(signer: string, spender: string, token: string, amount: bigint): StarknetAction;
39
- /**
40
- * Checks if the provided string is a valid starknet token
41
- *
42
- * @param token
43
- */
44
- isValidToken(token: string): boolean;
45
- /**
46
- * Returns the token balance of the address
47
- *
48
- * @param address
49
- * @param token
50
- */
51
- getTokenBalance(address: string, token: string): Promise<bigint>;
52
- /**
53
- * Returns the native currency address, return the default used by the fee module
54
- */
55
- getNativeCurrencyAddress(): string;
56
- /**
57
- * Creates transactions for sending the over the tokens
58
- *
59
- * @param signer
60
- * @param token token to send
61
- * @param amount amount of the token to send
62
- * @param recipient recipient's address
63
- * @param feeRate fee rate to use for the transactions
64
- * @private
65
- */
66
- txsTransfer(signer: string, token: string, amount: bigint, recipient: string, feeRate?: string): Promise<import("./StarknetTransactions").StarknetTx[]>;
67
- }
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
+ l1: number;
9
+ l2: number;
10
+ };
11
+ APPROVE: {
12
+ l1: number;
13
+ l2: number;
14
+ };
15
+ };
16
+ private getContract;
17
+ /**
18
+ * Action for transferring the erc20 token
19
+ *
20
+ * @param signer
21
+ * @param recipient
22
+ * @param token
23
+ * @param amount
24
+ * @constructor
25
+ * @private
26
+ */
27
+ private Transfer;
28
+ /**
29
+ * Approves spend of tokens for a specific spender
30
+ *
31
+ * @param signer
32
+ * @param spender
33
+ * @param token
34
+ * @param amount
35
+ * @constructor
36
+ * @private
37
+ */
38
+ Approve(signer: string, spender: string, token: string, amount: bigint): StarknetAction;
39
+ /**
40
+ * Checks if the provided string is a valid starknet token
41
+ *
42
+ * @param token
43
+ */
44
+ isValidToken(token: string): boolean;
45
+ /**
46
+ * Returns the token balance of the address
47
+ *
48
+ * @param address
49
+ * @param token
50
+ */
51
+ getTokenBalance(address: string, token: string): Promise<bigint>;
52
+ /**
53
+ * Returns the native currency address, return the default used by the fee module
54
+ */
55
+ getNativeCurrencyAddress(): string;
56
+ /**
57
+ * Creates transactions for sending the over the tokens
58
+ *
59
+ * @param signer
60
+ * @param token token to send
61
+ * @param amount amount of the token to send
62
+ * @param recipient recipient's address
63
+ * @param feeRate fee rate to use for the transactions
64
+ * @private
65
+ */
66
+ txsTransfer(signer: string, token: string, amount: bigint, recipient: string, feeRate?: string): Promise<import("./StarknetTransactions").StarknetTx[]>;
67
+ }