@atomiqlabs/chain-starknet 8.0.13 → 8.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/index.d.ts +18 -18
  2. package/dist/index.js +42 -42
  3. package/dist/starknet/StarknetChainType.d.ts +19 -19
  4. package/dist/starknet/StarknetChainType.js +2 -2
  5. package/dist/starknet/StarknetInitializer.d.ts +66 -63
  6. package/dist/starknet/StarknetInitializer.js +101 -101
  7. package/dist/starknet/btcrelay/BtcRelayAbi.d.ts +250 -250
  8. package/dist/starknet/btcrelay/BtcRelayAbi.js +341 -341
  9. package/dist/starknet/btcrelay/StarknetBtcRelay.d.ts +196 -196
  10. package/dist/starknet/btcrelay/StarknetBtcRelay.js +419 -411
  11. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.d.ts +70 -70
  12. package/dist/starknet/btcrelay/headers/StarknetBtcHeader.js +115 -115
  13. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.d.ts +91 -91
  14. package/dist/starknet/btcrelay/headers/StarknetBtcStoredHeader.js +155 -155
  15. package/dist/starknet/chain/StarknetAction.d.ts +19 -19
  16. package/dist/starknet/chain/StarknetAction.js +74 -74
  17. package/dist/starknet/chain/StarknetChainInterface.d.ts +142 -143
  18. package/dist/starknet/chain/StarknetChainInterface.js +198 -199
  19. package/dist/starknet/chain/StarknetModule.d.ts +8 -8
  20. package/dist/starknet/chain/StarknetModule.js +12 -12
  21. package/dist/starknet/chain/modules/ERC20Abi.d.ts +755 -755
  22. package/dist/starknet/chain/modules/ERC20Abi.js +1032 -1032
  23. package/dist/starknet/chain/modules/StarknetAccounts.d.ts +6 -6
  24. package/dist/starknet/chain/modules/StarknetAccounts.js +26 -26
  25. package/dist/starknet/chain/modules/StarknetAddresses.d.ts +10 -10
  26. package/dist/starknet/chain/modules/StarknetAddresses.js +27 -27
  27. package/dist/starknet/chain/modules/StarknetBlocks.d.ts +27 -27
  28. package/dist/starknet/chain/modules/StarknetBlocks.js +82 -82
  29. package/dist/starknet/chain/modules/StarknetEvents.d.ts +47 -47
  30. package/dist/starknet/chain/modules/StarknetEvents.js +90 -90
  31. package/dist/starknet/chain/modules/StarknetFees.d.ts +118 -104
  32. package/dist/starknet/chain/modules/StarknetFees.js +150 -146
  33. package/dist/starknet/chain/modules/StarknetSignatures.d.ts +29 -29
  34. package/dist/starknet/chain/modules/StarknetSignatures.js +72 -72
  35. package/dist/starknet/chain/modules/StarknetTokens.d.ts +66 -66
  36. package/dist/starknet/chain/modules/StarknetTokens.js +99 -99
  37. package/dist/starknet/chain/modules/StarknetTransactions.d.ts +122 -115
  38. package/dist/starknet/chain/modules/StarknetTransactions.js +633 -612
  39. package/dist/starknet/contract/StarknetContractBase.d.ts +14 -13
  40. package/dist/starknet/contract/StarknetContractBase.js +21 -20
  41. package/dist/starknet/contract/StarknetContractModule.d.ts +8 -8
  42. package/dist/starknet/contract/StarknetContractModule.js +11 -11
  43. package/dist/starknet/contract/modules/StarknetContractEvents.d.ts +56 -57
  44. package/dist/starknet/contract/modules/StarknetContractEvents.js +111 -111
  45. package/dist/starknet/events/StarknetChainEvents.d.ts +21 -21
  46. package/dist/starknet/events/StarknetChainEvents.js +61 -61
  47. package/dist/starknet/events/StarknetChainEventsBrowser.d.ts +178 -190
  48. package/dist/starknet/events/StarknetChainEventsBrowser.js +523 -582
  49. package/dist/starknet/provider/RpcProviderWithRetries.d.ts +49 -53
  50. package/dist/starknet/provider/RpcProviderWithRetries.js +94 -94
  51. package/dist/starknet/provider/WebSocketChannelWithRetries.d.ts +21 -21
  52. package/dist/starknet/provider/WebSocketChannelWithRetries.js +46 -46
  53. package/dist/starknet/spv_swap/SpvVaultContractAbi.d.ts +488 -488
  54. package/dist/starknet/spv_swap/SpvVaultContractAbi.js +656 -656
  55. package/dist/starknet/spv_swap/StarknetSpvVaultContract.d.ts +225 -219
  56. package/dist/starknet/spv_swap/StarknetSpvVaultContract.js +663 -621
  57. package/dist/starknet/spv_swap/StarknetSpvVaultData.d.ts +108 -108
  58. package/dist/starknet/spv_swap/StarknetSpvVaultData.js +190 -190
  59. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.d.ts +56 -56
  60. package/dist/starknet/spv_swap/StarknetSpvWithdrawalData.js +103 -103
  61. package/dist/starknet/swaps/EscrowManagerAbi.d.ts +431 -431
  62. package/dist/starknet/swaps/EscrowManagerAbi.js +583 -583
  63. package/dist/starknet/swaps/StarknetSwapContract.d.ts +309 -278
  64. package/dist/starknet/swaps/StarknetSwapContract.js +755 -579
  65. package/dist/starknet/swaps/StarknetSwapData.d.ts +234 -234
  66. package/dist/starknet/swaps/StarknetSwapData.js +474 -474
  67. package/dist/starknet/swaps/StarknetSwapModule.d.ts +10 -10
  68. package/dist/starknet/swaps/StarknetSwapModule.js +12 -12
  69. package/dist/starknet/swaps/handlers/IHandler.d.ts +13 -13
  70. package/dist/starknet/swaps/handlers/IHandler.js +2 -2
  71. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.d.ts +13 -13
  72. package/dist/starknet/swaps/handlers/claim/ClaimHandlers.js +13 -13
  73. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.d.ts +21 -21
  74. package/dist/starknet/swaps/handlers/claim/HashlockClaimHandler.js +44 -44
  75. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
  76. package/dist/starknet/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +48 -48
  77. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
  78. package/dist/starknet/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +40 -40
  79. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +20 -20
  80. package/dist/starknet/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +30 -30
  81. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +42 -45
  82. package/dist/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +50 -54
  83. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
  84. package/dist/starknet/swaps/handlers/refund/TimelockRefundHandler.js +27 -27
  85. package/dist/starknet/swaps/modules/StarknetLpVault.d.ts +67 -67
  86. package/dist/starknet/swaps/modules/StarknetLpVault.js +122 -122
  87. package/dist/starknet/swaps/modules/StarknetSwapClaim.d.ts +52 -52
  88. package/dist/starknet/swaps/modules/StarknetSwapClaim.js +99 -99
  89. package/dist/starknet/swaps/modules/StarknetSwapInit.d.ts +94 -94
  90. package/dist/starknet/swaps/modules/StarknetSwapInit.js +239 -239
  91. package/dist/starknet/swaps/modules/StarknetSwapRefund.d.ts +60 -60
  92. package/dist/starknet/swaps/modules/StarknetSwapRefund.js +126 -126
  93. package/dist/starknet/wallet/StarknetBrowserSigner.d.ts +11 -11
  94. package/dist/starknet/wallet/StarknetBrowserSigner.js +17 -17
  95. package/dist/starknet/wallet/StarknetPersistentSigner.d.ts +76 -76
  96. package/dist/starknet/wallet/StarknetPersistentSigner.js +291 -291
  97. package/dist/starknet/wallet/StarknetSigner.d.ts +72 -72
  98. package/dist/starknet/wallet/StarknetSigner.js +114 -114
  99. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.d.ts +18 -18
  100. package/dist/starknet/wallet/accounts/StarknetKeypairWallet.js +45 -45
  101. package/dist/utils/Utils.d.ts +77 -77
  102. package/dist/utils/Utils.js +304 -303
  103. package/package.json +2 -2
  104. package/src/starknet/StarknetInitializer.ts +6 -3
  105. package/src/starknet/btcrelay/StarknetBtcRelay.ts +19 -6
  106. package/src/starknet/btcrelay/headers/StarknetBtcHeader.ts +7 -7
  107. package/src/starknet/btcrelay/headers/StarknetBtcStoredHeader.ts +6 -6
  108. package/src/starknet/chain/StarknetAction.ts +1 -0
  109. package/src/starknet/chain/StarknetChainInterface.ts +0 -2
  110. package/src/starknet/chain/modules/StarknetFees.ts +15 -2
  111. package/src/starknet/chain/modules/StarknetTransactions.ts +24 -0
  112. package/src/starknet/contract/StarknetContractBase.ts +7 -4
  113. package/src/starknet/contract/StarknetContractModule.ts +1 -1
  114. package/src/starknet/contract/modules/StarknetContractEvents.ts +7 -7
  115. package/src/starknet/events/StarknetChainEventsBrowser.ts +2 -64
  116. package/src/starknet/provider/RpcProviderWithRetries.ts +1 -1
  117. package/src/starknet/spv_swap/StarknetSpvVaultContract.ts +84 -18
  118. package/src/starknet/swaps/StarknetSwapContract.ts +242 -6
  119. package/src/starknet/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +0 -4
@@ -1,6 +1,6 @@
1
- import { StarknetModule } from "../StarknetModule";
2
- import { StarknetTx } from "./StarknetTransactions";
3
- import { DeployAccountContractPayload } from "starknet";
4
- export declare class StarknetAccounts extends StarknetModule {
5
- getAccountDeployTransaction(deploymentData: DeployAccountContractPayload): Promise<StarknetTx>;
6
- }
1
+ import { StarknetModule } from "../StarknetModule";
2
+ import { StarknetTx } from "./StarknetTransactions";
3
+ import { DeployAccountContractPayload } from "starknet";
4
+ export declare class StarknetAccounts extends StarknetModule {
5
+ getAccountDeployTransaction(deploymentData: DeployAccountContractPayload): Promise<StarknetTx>;
6
+ }
@@ -1,26 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetAccounts = void 0;
4
- const StarknetModule_1 = require("../StarknetModule");
5
- class StarknetAccounts extends StarknetModule_1.StarknetModule {
6
- async getAccountDeployTransaction(deploymentData) {
7
- if (deploymentData.contractAddress == null)
8
- throw new Error("Contract address required in deploy transaction!");
9
- const feeDetails = this.root.Fees.getFeeDetails({ l1DataGas: 1000, l2Gas: 5000 * 40000, l1Gas: 0 }, await this.root.Fees.getFeeRate());
10
- const details = {
11
- ...feeDetails,
12
- walletAddress: deploymentData.contractAddress,
13
- cairoVersion: "1",
14
- chainId: this.root.starknetChainId,
15
- nonce: 0n,
16
- accountDeploymentData: [],
17
- skipValidate: false
18
- };
19
- return {
20
- type: "DEPLOY_ACCOUNT",
21
- tx: deploymentData,
22
- details
23
- };
24
- }
25
- }
26
- exports.StarknetAccounts = StarknetAccounts;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetAccounts = void 0;
4
+ const StarknetModule_1 = require("../StarknetModule");
5
+ class StarknetAccounts extends StarknetModule_1.StarknetModule {
6
+ async getAccountDeployTransaction(deploymentData) {
7
+ if (deploymentData.contractAddress == null)
8
+ throw new Error("Contract address required in deploy transaction!");
9
+ const feeDetails = this.root.Fees.getFeeDetails({ l1DataGas: 1000, l2Gas: 5000 * 40000, l1Gas: 0 }, await this.root.Fees.getFeeRate());
10
+ const details = {
11
+ ...feeDetails,
12
+ walletAddress: deploymentData.contractAddress,
13
+ cairoVersion: "1",
14
+ chainId: this.root.starknetChainId,
15
+ nonce: 0n,
16
+ accountDeploymentData: [],
17
+ skipValidate: false
18
+ };
19
+ return {
20
+ type: "DEPLOY_ACCOUNT",
21
+ tx: deploymentData,
22
+ details
23
+ };
24
+ }
25
+ }
26
+ exports.StarknetAccounts = StarknetAccounts;
@@ -1,10 +1,10 @@
1
- import { StarknetModule } from "../StarknetModule";
2
- export declare class StarknetAddresses extends StarknetModule {
3
- /**
4
- * Checks whether an address is a valid starknet address
5
- *
6
- * @param value
7
- * @param lenient
8
- */
9
- static isValidAddress(value: string, lenient?: boolean): boolean;
10
- }
1
+ import { StarknetModule } from "../StarknetModule";
2
+ export declare class StarknetAddresses extends StarknetModule {
3
+ /**
4
+ * Checks whether an address is a valid starknet address
5
+ *
6
+ * @param value
7
+ * @param lenient
8
+ */
9
+ static isValidAddress(value: string, lenient?: boolean): boolean;
10
+ }
@@ -1,27 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetAddresses = void 0;
4
- const StarknetModule_1 = require("../StarknetModule");
5
- const starknet_1 = require("starknet");
6
- class StarknetAddresses extends StarknetModule_1.StarknetModule {
7
- ///////////////////
8
- //// Address utils
9
- /**
10
- * Checks whether an address is a valid starknet address
11
- *
12
- * @param value
13
- * @param lenient
14
- */
15
- static isValidAddress(value, lenient) {
16
- if (!lenient && value.length !== 66)
17
- return false;
18
- try {
19
- (0, starknet_1.validateAndParseAddress)(value);
20
- return true;
21
- }
22
- catch (e) {
23
- return false;
24
- }
25
- }
26
- }
27
- exports.StarknetAddresses = StarknetAddresses;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetAddresses = void 0;
4
+ const StarknetModule_1 = require("../StarknetModule");
5
+ const starknet_1 = require("starknet");
6
+ class StarknetAddresses extends StarknetModule_1.StarknetModule {
7
+ ///////////////////
8
+ //// Address utils
9
+ /**
10
+ * Checks whether an address is a valid starknet address
11
+ *
12
+ * @param value
13
+ * @param lenient
14
+ */
15
+ static isValidAddress(value, lenient) {
16
+ if (!lenient && value.length !== 66)
17
+ return false;
18
+ try {
19
+ (0, starknet_1.validateAndParseAddress)(value);
20
+ return true;
21
+ }
22
+ catch (e) {
23
+ return false;
24
+ }
25
+ }
26
+ }
27
+ exports.StarknetAddresses = StarknetAddresses;
@@ -1,27 +1,27 @@
1
- import { StarknetModule } from "../StarknetModule";
2
- import { BlockWithTxHashes } from "starknet";
3
- export type StarknetBlockTag = "pre_confirmed" | "latest" | "l1_accepted";
4
- export declare class StarknetBlocks extends StarknetModule {
5
- private BLOCK_CACHE_TIME;
6
- private blockCache;
7
- /**
8
- * Initiates fetch of a given block & saves it to cache
9
- *
10
- * @private
11
- * @param blockTag
12
- */
13
- private fetchAndSaveBlockTime;
14
- private cleanupBlocks;
15
- /**
16
- * Gets the block for a given blocktag, with caching
17
- *
18
- * @param blockTag
19
- */
20
- getBlock(blockTag: StarknetBlockTag | number): Promise<BlockWithTxHashes>;
21
- /**
22
- * Gets the block for a given blocktag, with caching
23
- *
24
- * @param blockTag
25
- */
26
- getBlockTime(blockTag: StarknetBlockTag | number): Promise<number>;
27
- }
1
+ import { StarknetModule } from "../StarknetModule";
2
+ import { BlockWithTxHashes } from "starknet";
3
+ export type StarknetBlockTag = "pre_confirmed" | "latest" | "l1_accepted";
4
+ export declare class StarknetBlocks extends StarknetModule {
5
+ private BLOCK_CACHE_TIME;
6
+ private blockCache;
7
+ /**
8
+ * Initiates fetch of a given block & saves it to cache
9
+ *
10
+ * @private
11
+ * @param blockTag
12
+ */
13
+ private fetchAndSaveBlockTime;
14
+ private cleanupBlocks;
15
+ /**
16
+ * Gets the block for a given blocktag, with caching
17
+ *
18
+ * @param blockTag
19
+ */
20
+ getBlock(blockTag: StarknetBlockTag | number): Promise<BlockWithTxHashes>;
21
+ /**
22
+ * Gets the block for a given blocktag, with caching
23
+ *
24
+ * @param blockTag
25
+ */
26
+ getBlockTime(blockTag: StarknetBlockTag | number): Promise<number>;
27
+ }
@@ -1,82 +1,82 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetBlocks = void 0;
4
- const StarknetModule_1 = require("../StarknetModule");
5
- const Utils_1 = require("../../../utils/Utils");
6
- class StarknetBlocks extends StarknetModule_1.StarknetModule {
7
- constructor() {
8
- super(...arguments);
9
- this.BLOCK_CACHE_TIME = 5 * 1000;
10
- this.blockCache = {};
11
- }
12
- /**
13
- * Initiates fetch of a given block & saves it to cache
14
- *
15
- * @private
16
- * @param blockTag
17
- */
18
- fetchAndSaveBlockTime(blockTag) {
19
- const blockTagStr = blockTag.toString(10);
20
- const blockPromise = (0, Utils_1.tryWithRetries)(() => this.provider.getBlockWithTxHashes(blockTag), undefined, (err) => {
21
- if (err?.message != null) {
22
- const arr = err.message.split("\n");
23
- const errorCode = parseInt(arr[arr.length - 1]);
24
- //Block not found
25
- if (errorCode === 24)
26
- return false;
27
- }
28
- return true;
29
- });
30
- const timestamp = Date.now();
31
- this.blockCache[blockTagStr] = {
32
- block: blockPromise,
33
- timestamp
34
- };
35
- blockPromise.catch(() => {
36
- if (this.blockCache[blockTagStr] != null && this.blockCache[blockTagStr].block === blockPromise)
37
- delete this.blockCache[blockTagStr];
38
- });
39
- return {
40
- block: blockPromise,
41
- timestamp
42
- };
43
- }
44
- cleanupBlocks() {
45
- const currentTime = Date.now();
46
- //Keys are in order that they were added, so we can stop at the first non-expired block
47
- for (let key in this.blockCache) {
48
- const block = this.blockCache[key];
49
- if (currentTime - block.timestamp > this.BLOCK_CACHE_TIME) {
50
- delete this.blockCache[key];
51
- }
52
- else {
53
- break;
54
- }
55
- }
56
- }
57
- ///////////////////
58
- //// Blocks
59
- /**
60
- * Gets the block for a given blocktag, with caching
61
- *
62
- * @param blockTag
63
- */
64
- getBlock(blockTag) {
65
- this.cleanupBlocks();
66
- let cachedBlockData = this.blockCache[blockTag.toString(10)];
67
- if (cachedBlockData == null || Date.now() - cachedBlockData.timestamp > this.BLOCK_CACHE_TIME) {
68
- cachedBlockData = this.fetchAndSaveBlockTime(blockTag);
69
- }
70
- return cachedBlockData.block;
71
- }
72
- /**
73
- * Gets the block for a given blocktag, with caching
74
- *
75
- * @param blockTag
76
- */
77
- async getBlockTime(blockTag) {
78
- const block = await this.getBlock(blockTag);
79
- return block.timestamp;
80
- }
81
- }
82
- exports.StarknetBlocks = StarknetBlocks;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetBlocks = void 0;
4
+ const StarknetModule_1 = require("../StarknetModule");
5
+ const Utils_1 = require("../../../utils/Utils");
6
+ class StarknetBlocks extends StarknetModule_1.StarknetModule {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.BLOCK_CACHE_TIME = 5 * 1000;
10
+ this.blockCache = {};
11
+ }
12
+ /**
13
+ * Initiates fetch of a given block & saves it to cache
14
+ *
15
+ * @private
16
+ * @param blockTag
17
+ */
18
+ fetchAndSaveBlockTime(blockTag) {
19
+ const blockTagStr = blockTag.toString(10);
20
+ const blockPromise = (0, Utils_1.tryWithRetries)(() => this.provider.getBlockWithTxHashes(blockTag), undefined, (err) => {
21
+ if (err?.message != null) {
22
+ const arr = err.message.split("\n");
23
+ const errorCode = parseInt(arr[arr.length - 1]);
24
+ //Block not found
25
+ if (errorCode === 24)
26
+ return false;
27
+ }
28
+ return true;
29
+ });
30
+ const timestamp = Date.now();
31
+ this.blockCache[blockTagStr] = {
32
+ block: blockPromise,
33
+ timestamp
34
+ };
35
+ blockPromise.catch(() => {
36
+ if (this.blockCache[blockTagStr] != null && this.blockCache[blockTagStr].block === blockPromise)
37
+ delete this.blockCache[blockTagStr];
38
+ });
39
+ return {
40
+ block: blockPromise,
41
+ timestamp
42
+ };
43
+ }
44
+ cleanupBlocks() {
45
+ const currentTime = Date.now();
46
+ //Keys are in order that they were added, so we can stop at the first non-expired block
47
+ for (let key in this.blockCache) {
48
+ const block = this.blockCache[key];
49
+ if (currentTime - block.timestamp > this.BLOCK_CACHE_TIME) {
50
+ delete this.blockCache[key];
51
+ }
52
+ else {
53
+ break;
54
+ }
55
+ }
56
+ }
57
+ ///////////////////
58
+ //// Blocks
59
+ /**
60
+ * Gets the block for a given blocktag, with caching
61
+ *
62
+ * @param blockTag
63
+ */
64
+ getBlock(blockTag) {
65
+ this.cleanupBlocks();
66
+ let cachedBlockData = this.blockCache[blockTag.toString(10)];
67
+ if (cachedBlockData == null || Date.now() - cachedBlockData.timestamp > this.BLOCK_CACHE_TIME) {
68
+ cachedBlockData = this.fetchAndSaveBlockTime(blockTag);
69
+ }
70
+ return cachedBlockData.block;
71
+ }
72
+ /**
73
+ * Gets the block for a given blocktag, with caching
74
+ *
75
+ * @param blockTag
76
+ */
77
+ async getBlockTime(blockTag) {
78
+ const block = await this.getBlock(blockTag);
79
+ return block.timestamp;
80
+ }
81
+ }
82
+ exports.StarknetBlocks = StarknetBlocks;
@@ -1,47 +1,47 @@
1
- import { StarknetModule } from "../StarknetModule";
2
- export type StarknetEvent = {
3
- block_hash?: string;
4
- block_number?: number;
5
- transaction_hash: string;
6
- transaction_index?: number;
7
- event_index?: number;
8
- from_address: string;
9
- keys: string[];
10
- data: string[];
11
- };
12
- export declare class StarknetEvents extends StarknetModule {
13
- readonly EVENTS_LIMIT = 100;
14
- readonly FORWARD_BLOCK_RANGE = 2000;
15
- /**
16
- * Returns the all the events occuring in a block range as identified by the contract and keys
17
- *
18
- * @param contract
19
- * @param keys
20
- * @param startBlock
21
- * @param endBlock
22
- * @param abortSignal
23
- */
24
- getBlockEvents(contract: string, keys: string[][], startBlock?: number, endBlock?: number | null | undefined, abortSignal?: AbortSignal): Promise<StarknetEvent[]>;
25
- /**
26
- * Runs a search backwards in time, processing events from a specific contract and keys
27
- *
28
- * @param contract
29
- * @param keys
30
- * @param processor called for every batch of returned signatures, should return a value if the correct signature
31
- * was found, or null if the search should continue
32
- * @param abortSignal
33
- */
34
- findInEvents<T>(contract: string, keys: string[][], processor: (signatures: StarknetEvent[]) => Promise<T | null>, abortSignal?: AbortSignal): Promise<T | null>;
35
- /**
36
- * Runs a search forwards in time, processing events from a specific contract and keys
37
- *
38
- * @param contract
39
- * @param keys
40
- * @param processor called for every batch of returned signatures, should return a value if the correct signature
41
- * was found, or null if the search should continue
42
- * @param startHeight
43
- * @param abortSignal
44
- * @param logFetchLimit
45
- */
46
- findInEventsForward<T>(contract: string, keys: string[][], processor: (signatures: StarknetEvent[]) => Promise<T | null>, startHeight?: number, abortSignal?: AbortSignal, logFetchLimit?: number): Promise<T | null>;
47
- }
1
+ import { StarknetModule } from "../StarknetModule";
2
+ export type StarknetEvent = {
3
+ block_hash?: string;
4
+ block_number?: number;
5
+ transaction_hash: string;
6
+ transaction_index?: number;
7
+ event_index?: number;
8
+ from_address: string;
9
+ keys: string[];
10
+ data: string[];
11
+ };
12
+ export declare class StarknetEvents extends StarknetModule {
13
+ readonly EVENTS_LIMIT = 100;
14
+ readonly FORWARD_BLOCK_RANGE = 2000;
15
+ /**
16
+ * Returns the all the events occuring in a block range as identified by the contract and keys
17
+ *
18
+ * @param contract
19
+ * @param keys
20
+ * @param startBlock
21
+ * @param endBlock
22
+ * @param abortSignal
23
+ */
24
+ getBlockEvents(contract: string, keys: string[][], startBlock?: number, endBlock?: number | null | undefined, abortSignal?: AbortSignal): Promise<StarknetEvent[]>;
25
+ /**
26
+ * Runs a search backwards in time, processing events from a specific contract and keys
27
+ *
28
+ * @param contract
29
+ * @param keys
30
+ * @param processor called for every batch of returned signatures, should return a value if the correct signature
31
+ * was found, or null if the search should continue
32
+ * @param abortSignal
33
+ */
34
+ findInEvents<T>(contract: string, keys: string[][], processor: (signatures: StarknetEvent[]) => Promise<T | null>, abortSignal?: AbortSignal): Promise<T | null>;
35
+ /**
36
+ * Runs a search forwards in time, processing events from a specific contract and keys
37
+ *
38
+ * @param contract
39
+ * @param keys
40
+ * @param processor called for every batch of returned signatures, should return a value if the correct signature
41
+ * was found, or null if the search should continue
42
+ * @param startHeight
43
+ * @param abortSignal
44
+ * @param logFetchLimit
45
+ */
46
+ findInEventsForward<T>(contract: string, keys: string[][], processor: (signatures: StarknetEvent[]) => Promise<T | null>, startHeight?: number, abortSignal?: AbortSignal, logFetchLimit?: number): Promise<T | null>;
47
+ }
@@ -1,90 +1,90 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StarknetEvents = void 0;
4
- const StarknetModule_1 = require("../StarknetModule");
5
- class StarknetEvents extends StarknetModule_1.StarknetModule {
6
- constructor() {
7
- super(...arguments);
8
- this.EVENTS_LIMIT = 100;
9
- this.FORWARD_BLOCK_RANGE = 2000;
10
- }
11
- /**
12
- * Returns the all the events occuring in a block range as identified by the contract and keys
13
- *
14
- * @param contract
15
- * @param keys
16
- * @param startBlock
17
- * @param endBlock
18
- * @param abortSignal
19
- */
20
- async getBlockEvents(contract, keys, startBlock, endBlock = startBlock, abortSignal) {
21
- const events = [];
22
- let result = null;
23
- do {
24
- result = await this.root.provider.getEvents({
25
- address: contract,
26
- from_block: startBlock == null ? "latest" : { block_number: startBlock },
27
- to_block: endBlock == null ? "latest" : { block_number: endBlock },
28
- keys,
29
- chunk_size: this.EVENTS_LIMIT,
30
- continuation_token: result == null ? undefined : result.continuation_token
31
- });
32
- if (abortSignal != null)
33
- abortSignal.throwIfAborted();
34
- events.push(...result.events);
35
- } while (result?.continuation_token != null);
36
- return events;
37
- }
38
- /**
39
- * Runs a search backwards in time, processing events from a specific contract and keys
40
- *
41
- * @param contract
42
- * @param keys
43
- * @param processor called for every batch of returned signatures, should return a value if the correct signature
44
- * was found, or null if the search should continue
45
- * @param abortSignal
46
- */
47
- async findInEvents(contract, keys, processor, abortSignal) {
48
- const latestBlockNumber = await this.provider.getBlockNumber();
49
- for (let blockNumber = latestBlockNumber; blockNumber >= 0; blockNumber -= this.FORWARD_BLOCK_RANGE) {
50
- const eventsResult = await this.getBlockEvents(contract, keys, Math.max(blockNumber - this.FORWARD_BLOCK_RANGE, 0), blockNumber === latestBlockNumber ? null : blockNumber, abortSignal);
51
- const result = await processor(eventsResult.reverse());
52
- if (result != null)
53
- return result;
54
- }
55
- return null;
56
- }
57
- /**
58
- * Runs a search forwards in time, processing events from a specific contract and keys
59
- *
60
- * @param contract
61
- * @param keys
62
- * @param processor called for every batch of returned signatures, should return a value if the correct signature
63
- * was found, or null if the search should continue
64
- * @param startHeight
65
- * @param abortSignal
66
- * @param logFetchLimit
67
- */
68
- async findInEventsForward(contract, keys, processor, startHeight, abortSignal, logFetchLimit) {
69
- if (logFetchLimit == null || logFetchLimit > this.EVENTS_LIMIT)
70
- logFetchLimit = this.EVENTS_LIMIT;
71
- let eventsResult = null;
72
- do {
73
- eventsResult = await this.root.provider.getEvents({
74
- address: contract,
75
- from_block: startHeight == null ? undefined : { block_number: startHeight },
76
- to_block: "latest",
77
- keys,
78
- chunk_size: logFetchLimit ?? this.EVENTS_LIMIT,
79
- continuation_token: eventsResult == null ? undefined : eventsResult.continuation_token
80
- });
81
- if (abortSignal != null)
82
- abortSignal.throwIfAborted();
83
- const result = await processor(eventsResult.events);
84
- if (result != null)
85
- return result;
86
- } while (eventsResult.continuation_token != null);
87
- return null;
88
- }
89
- }
90
- exports.StarknetEvents = StarknetEvents;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StarknetEvents = void 0;
4
+ const StarknetModule_1 = require("../StarknetModule");
5
+ class StarknetEvents extends StarknetModule_1.StarknetModule {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.EVENTS_LIMIT = 100;
9
+ this.FORWARD_BLOCK_RANGE = 2000;
10
+ }
11
+ /**
12
+ * Returns the all the events occuring in a block range as identified by the contract and keys
13
+ *
14
+ * @param contract
15
+ * @param keys
16
+ * @param startBlock
17
+ * @param endBlock
18
+ * @param abortSignal
19
+ */
20
+ async getBlockEvents(contract, keys, startBlock, endBlock = startBlock, abortSignal) {
21
+ const events = [];
22
+ let result = null;
23
+ do {
24
+ result = await this.root.provider.getEvents({
25
+ address: contract,
26
+ from_block: startBlock == null ? "latest" : { block_number: startBlock },
27
+ to_block: endBlock == null ? "latest" : { block_number: endBlock },
28
+ keys,
29
+ chunk_size: this.EVENTS_LIMIT,
30
+ continuation_token: result == null ? undefined : result.continuation_token
31
+ });
32
+ if (abortSignal != null)
33
+ abortSignal.throwIfAborted();
34
+ events.push(...result.events);
35
+ } while (result?.continuation_token != null);
36
+ return events;
37
+ }
38
+ /**
39
+ * Runs a search backwards in time, processing events from a specific contract and keys
40
+ *
41
+ * @param contract
42
+ * @param keys
43
+ * @param processor called for every batch of returned signatures, should return a value if the correct signature
44
+ * was found, or null if the search should continue
45
+ * @param abortSignal
46
+ */
47
+ async findInEvents(contract, keys, processor, abortSignal) {
48
+ const latestBlockNumber = await this.provider.getBlockNumber();
49
+ for (let blockNumber = latestBlockNumber; blockNumber >= 0; blockNumber -= this.FORWARD_BLOCK_RANGE) {
50
+ const eventsResult = await this.getBlockEvents(contract, keys, Math.max(blockNumber - this.FORWARD_BLOCK_RANGE, 0), blockNumber === latestBlockNumber ? null : blockNumber, abortSignal);
51
+ const result = await processor(eventsResult.reverse());
52
+ if (result != null)
53
+ return result;
54
+ }
55
+ return null;
56
+ }
57
+ /**
58
+ * Runs a search forwards in time, processing events from a specific contract and keys
59
+ *
60
+ * @param contract
61
+ * @param keys
62
+ * @param processor called for every batch of returned signatures, should return a value if the correct signature
63
+ * was found, or null if the search should continue
64
+ * @param startHeight
65
+ * @param abortSignal
66
+ * @param logFetchLimit
67
+ */
68
+ async findInEventsForward(contract, keys, processor, startHeight, abortSignal, logFetchLimit) {
69
+ if (logFetchLimit == null || logFetchLimit > this.EVENTS_LIMIT)
70
+ logFetchLimit = this.EVENTS_LIMIT;
71
+ let eventsResult = null;
72
+ do {
73
+ eventsResult = await this.root.provider.getEvents({
74
+ address: contract,
75
+ from_block: startHeight == null ? undefined : { block_number: startHeight },
76
+ to_block: "latest",
77
+ keys,
78
+ chunk_size: logFetchLimit ?? this.EVENTS_LIMIT,
79
+ continuation_token: eventsResult == null ? undefined : eventsResult.continuation_token
80
+ });
81
+ if (abortSignal != null)
82
+ abortSignal.throwIfAborted();
83
+ const result = await processor(eventsResult.events);
84
+ if (result != null)
85
+ return result;
86
+ } while (eventsResult.continuation_token != null);
87
+ return null;
88
+ }
89
+ }
90
+ exports.StarknetEvents = StarknetEvents;