@atomiqlabs/chain-evm 1.0.0-dev.75 → 1.0.0-dev.77
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.
- package/LICENSE +201 -201
- package/dist/chains/botanix/BotanixChainType.d.ts +13 -13
- package/dist/chains/botanix/BotanixChainType.js +2 -2
- package/dist/chains/botanix/BotanixInitializer.d.ts +30 -30
- package/dist/chains/botanix/BotanixInitializer.js +122 -122
- package/dist/chains/citrea/CitreaBtcRelay.d.ts +21 -21
- package/dist/chains/citrea/CitreaBtcRelay.js +43 -43
- package/dist/chains/citrea/CitreaChainType.d.ts +13 -13
- package/dist/chains/citrea/CitreaChainType.js +2 -2
- package/dist/chains/citrea/CitreaFees.d.ts +29 -29
- package/dist/chains/citrea/CitreaFees.js +67 -67
- package/dist/chains/citrea/CitreaInitializer.d.ts +30 -30
- package/dist/chains/citrea/CitreaInitializer.js +129 -129
- package/dist/chains/citrea/CitreaSpvVaultContract.d.ts +15 -15
- package/dist/chains/citrea/CitreaSpvVaultContract.js +74 -74
- package/dist/chains/citrea/CitreaSwapContract.d.ts +22 -22
- package/dist/chains/citrea/CitreaSwapContract.js +96 -96
- package/dist/chains/citrea/CitreaTokens.d.ts +9 -9
- package/dist/chains/citrea/CitreaTokens.js +20 -20
- package/dist/evm/btcrelay/BtcRelayAbi.d.ts +198 -198
- package/dist/evm/btcrelay/BtcRelayAbi.js +261 -261
- package/dist/evm/btcrelay/BtcRelayTypechain.d.ts +172 -172
- package/dist/evm/btcrelay/BtcRelayTypechain.js +2 -2
- package/dist/evm/btcrelay/EVMBtcRelay.d.ts +197 -197
- package/dist/evm/btcrelay/EVMBtcRelay.js +435 -435
- package/dist/evm/btcrelay/headers/EVMBtcHeader.d.ts +33 -33
- package/dist/evm/btcrelay/headers/EVMBtcHeader.js +84 -84
- package/dist/evm/btcrelay/headers/EVMBtcStoredHeader.d.ts +56 -56
- package/dist/evm/btcrelay/headers/EVMBtcStoredHeader.js +123 -123
- package/dist/evm/chain/EVMChainInterface.d.ts +51 -51
- package/dist/evm/chain/EVMChainInterface.js +89 -89
- package/dist/evm/chain/EVMModule.d.ts +9 -9
- package/dist/evm/chain/EVMModule.js +13 -13
- package/dist/evm/chain/modules/ERC20Abi.d.ts +168 -168
- package/dist/evm/chain/modules/ERC20Abi.js +225 -225
- package/dist/evm/chain/modules/EVMAddresses.d.ts +10 -10
- package/dist/evm/chain/modules/EVMAddresses.js +30 -30
- package/dist/evm/chain/modules/EVMBlocks.d.ts +20 -20
- package/dist/evm/chain/modules/EVMBlocks.js +64 -64
- package/dist/evm/chain/modules/EVMEvents.d.ts +36 -36
- package/dist/evm/chain/modules/EVMEvents.js +122 -122
- package/dist/evm/chain/modules/EVMFees.d.ts +36 -36
- package/dist/evm/chain/modules/EVMFees.js +74 -74
- package/dist/evm/chain/modules/EVMSignatures.d.ts +29 -29
- package/dist/evm/chain/modules/EVMSignatures.js +68 -68
- package/dist/evm/chain/modules/EVMTokens.d.ts +70 -70
- package/dist/evm/chain/modules/EVMTokens.js +142 -142
- package/dist/evm/chain/modules/EVMTransactions.d.ts +94 -94
- package/dist/evm/chain/modules/EVMTransactions.js +286 -286
- package/dist/evm/contract/EVMContractBase.d.ts +22 -22
- package/dist/evm/contract/EVMContractBase.js +34 -34
- package/dist/evm/contract/EVMContractModule.d.ts +8 -8
- package/dist/evm/contract/EVMContractModule.js +11 -11
- package/dist/evm/contract/modules/EVMContractEvents.d.ts +42 -42
- package/dist/evm/contract/modules/EVMContractEvents.js +75 -75
- package/dist/evm/events/EVMChainEvents.d.ts +22 -22
- package/dist/evm/events/EVMChainEvents.js +69 -69
- package/dist/evm/events/EVMChainEventsBrowser.d.ts +102 -102
- package/dist/evm/events/EVMChainEventsBrowser.js +413 -404
- package/dist/evm/providers/JsonRpcProviderWithRetries.d.ts +15 -15
- package/dist/evm/providers/JsonRpcProviderWithRetries.js +19 -19
- package/dist/evm/providers/ReconnectingWebSocketProvider.d.ts +22 -22
- package/dist/evm/providers/ReconnectingWebSocketProvider.js +87 -87
- package/dist/evm/providers/SocketProvider.d.ts +111 -111
- package/dist/evm/providers/SocketProvider.js +334 -334
- package/dist/evm/providers/WebSocketProviderWithRetries.d.ts +17 -17
- package/dist/evm/providers/WebSocketProviderWithRetries.js +19 -19
- package/dist/evm/spv_swap/EVMSpvVaultContract.d.ts +79 -79
- package/dist/evm/spv_swap/EVMSpvVaultContract.js +482 -482
- package/dist/evm/spv_swap/EVMSpvVaultData.d.ts +39 -39
- package/dist/evm/spv_swap/EVMSpvVaultData.js +0 -180
- package/dist/evm/spv_swap/EVMSpvWithdrawalData.d.ts +19 -19
- package/dist/evm/spv_swap/EVMSpvWithdrawalData.js +55 -55
- package/dist/evm/spv_swap/SpvVaultContractAbi.d.ts +91 -91
- package/dist/evm/spv_swap/SpvVaultContractAbi.js +849 -849
- package/dist/evm/spv_swap/SpvVaultContractTypechain.d.ts +450 -450
- package/dist/evm/spv_swap/SpvVaultContractTypechain.js +2 -2
- package/dist/evm/swaps/EVMSwapContract.d.ts +193 -193
- package/dist/evm/swaps/EVMSwapContract.js +378 -378
- package/dist/evm/swaps/EVMSwapData.d.ts +66 -66
- package/dist/evm/swaps/EVMSwapData.js +260 -260
- package/dist/evm/swaps/EVMSwapModule.d.ts +9 -9
- package/dist/evm/swaps/EVMSwapModule.js +11 -11
- package/dist/evm/swaps/EscrowManagerAbi.d.ts +120 -120
- package/dist/evm/swaps/EscrowManagerAbi.js +985 -985
- package/dist/evm/swaps/EscrowManagerTypechain.d.ts +475 -475
- package/dist/evm/swaps/EscrowManagerTypechain.js +2 -2
- package/dist/evm/swaps/handlers/IHandler.d.ts +13 -13
- package/dist/evm/swaps/handlers/IHandler.js +2 -2
- package/dist/evm/swaps/handlers/claim/ClaimHandlers.d.ts +10 -10
- package/dist/evm/swaps/handlers/claim/ClaimHandlers.js +13 -13
- package/dist/evm/swaps/handlers/claim/HashlockClaimHandler.d.ts +20 -20
- package/dist/evm/swaps/handlers/claim/HashlockClaimHandler.js +39 -39
- package/dist/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.d.ts +24 -24
- package/dist/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.js +59 -59
- package/dist/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.d.ts +25 -25
- package/dist/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.js +51 -51
- package/dist/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.d.ts +21 -21
- package/dist/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.js +28 -28
- package/dist/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.d.ts +48 -48
- package/dist/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.js +63 -63
- package/dist/evm/swaps/handlers/refund/TimelockRefundHandler.d.ts +17 -17
- package/dist/evm/swaps/handlers/refund/TimelockRefundHandler.js +28 -28
- package/dist/evm/swaps/modules/EVMLpVault.d.ts +69 -69
- package/dist/evm/swaps/modules/EVMLpVault.js +134 -134
- package/dist/evm/swaps/modules/EVMSwapClaim.d.ts +54 -54
- package/dist/evm/swaps/modules/EVMSwapClaim.js +137 -137
- package/dist/evm/swaps/modules/EVMSwapInit.d.ts +88 -88
- package/dist/evm/swaps/modules/EVMSwapInit.js +274 -274
- package/dist/evm/swaps/modules/EVMSwapRefund.d.ts +62 -62
- package/dist/evm/swaps/modules/EVMSwapRefund.js +167 -167
- package/dist/evm/typechain/common.d.ts +50 -50
- package/dist/evm/typechain/common.js +2 -2
- package/dist/evm/wallet/EVMBrowserSigner.d.ts +5 -5
- package/dist/evm/wallet/EVMBrowserSigner.js +11 -11
- package/dist/evm/wallet/EVMPersistentSigner.d.ts +29 -29
- package/dist/evm/wallet/EVMPersistentSigner.js +222 -222
- package/dist/evm/wallet/EVMSigner.d.ts +11 -11
- package/dist/evm/wallet/EVMSigner.js +24 -24
- package/dist/index.d.ts +44 -44
- package/dist/index.js +60 -60
- package/dist/utils/Utils.d.ts +17 -17
- package/dist/utils/Utils.js +81 -81
- package/package.json +39 -39
- package/src/chains/botanix/BotanixChainType.ts +28 -28
- package/src/chains/botanix/BotanixInitializer.ts +171 -171
- package/src/chains/citrea/CitreaBtcRelay.ts +57 -57
- package/src/chains/citrea/CitreaChainType.ts +28 -28
- package/src/chains/citrea/CitreaFees.ts +77 -77
- package/src/chains/citrea/CitreaInitializer.ts +178 -178
- package/src/chains/citrea/CitreaSpvVaultContract.ts +75 -75
- package/src/chains/citrea/CitreaSwapContract.ts +102 -102
- package/src/chains/citrea/CitreaTokens.ts +21 -21
- package/src/evm/btcrelay/BtcRelayAbi.ts +258 -258
- package/src/evm/btcrelay/BtcRelayTypechain.ts +371 -371
- package/src/evm/btcrelay/EVMBtcRelay.ts +537 -537
- package/src/evm/btcrelay/headers/EVMBtcHeader.ts +109 -109
- package/src/evm/btcrelay/headers/EVMBtcStoredHeader.ts +152 -152
- package/src/evm/chain/EVMChainInterface.ts +155 -155
- package/src/evm/chain/EVMModule.ts +21 -21
- package/src/evm/chain/modules/ERC20Abi.ts +222 -222
- package/src/evm/chain/modules/EVMAddresses.ts +28 -28
- package/src/evm/chain/modules/EVMBlocks.ts +75 -75
- package/src/evm/chain/modules/EVMEvents.ts +139 -139
- package/src/evm/chain/modules/EVMFees.ts +104 -104
- package/src/evm/chain/modules/EVMSignatures.ts +76 -76
- package/src/evm/chain/modules/EVMTokens.ts +155 -155
- package/src/evm/chain/modules/EVMTransactions.ts +325 -325
- package/src/evm/contract/EVMContractBase.ts +63 -63
- package/src/evm/contract/EVMContractModule.ts +16 -16
- package/src/evm/contract/modules/EVMContractEvents.ts +102 -102
- package/src/evm/events/EVMChainEvents.ts +82 -82
- package/src/evm/events/EVMChainEventsBrowser.ts +534 -525
- package/src/evm/providers/JsonRpcProviderWithRetries.ts +24 -24
- package/src/evm/providers/ReconnectingWebSocketProvider.ts +101 -101
- package/src/evm/providers/SocketProvider.ts +368 -368
- package/src/evm/providers/WebSocketProviderWithRetries.ts +27 -27
- package/src/evm/spv_swap/EVMSpvVaultContract.ts +615 -615
- package/src/evm/spv_swap/EVMSpvVaultData.ts +224 -224
- package/src/evm/spv_swap/EVMSpvWithdrawalData.ts +70 -70
- package/src/evm/spv_swap/SpvVaultContractAbi.ts +846 -846
- package/src/evm/spv_swap/SpvVaultContractTypechain.ts +685 -685
- package/src/evm/swaps/EVMSwapContract.ts +600 -600
- package/src/evm/swaps/EVMSwapData.ts +378 -378
- package/src/evm/swaps/EVMSwapModule.ts +16 -16
- package/src/evm/swaps/EscrowManagerAbi.ts +982 -982
- package/src/evm/swaps/EscrowManagerTypechain.ts +723 -723
- package/src/evm/swaps/handlers/IHandler.ts +17 -17
- package/src/evm/swaps/handlers/claim/ClaimHandlers.ts +20 -20
- package/src/evm/swaps/handlers/claim/HashlockClaimHandler.ts +46 -46
- package/src/evm/swaps/handlers/claim/btc/BitcoinNoncedOutputClaimHandler.ts +82 -82
- package/src/evm/swaps/handlers/claim/btc/BitcoinOutputClaimHandler.ts +76 -76
- package/src/evm/swaps/handlers/claim/btc/BitcoinTxIdClaimHandler.ts +46 -46
- package/src/evm/swaps/handlers/claim/btc/IBitcoinClaimHandler.ts +115 -115
- package/src/evm/swaps/handlers/refund/TimelockRefundHandler.ts +37 -37
- package/src/evm/swaps/modules/EVMLpVault.ts +154 -154
- package/src/evm/swaps/modules/EVMSwapClaim.ts +172 -172
- package/src/evm/swaps/modules/EVMSwapInit.ts +328 -328
- package/src/evm/swaps/modules/EVMSwapRefund.ts +229 -229
- package/src/evm/typechain/common.ts +131 -131
- package/src/evm/wallet/EVMBrowserSigner.ts +11 -11
- package/src/evm/wallet/EVMPersistentSigner.ts +298 -298
- package/src/evm/wallet/EVMSigner.ts +31 -31
- package/src/index.ts +53 -53
- package/src/utils/Utils.ts +92 -92
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EVMBlocks = void 0;
|
|
4
|
-
const EVMModule_1 = require("../EVMModule");
|
|
5
|
-
class EVMBlocks extends EVMModule_1.EVMModule {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.BLOCK_CACHE_TIME = 5 * 1000;
|
|
9
|
-
this.blockCache = {};
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Initiates fetch of a given block & saves it to cache
|
|
13
|
-
*
|
|
14
|
-
* @private
|
|
15
|
-
* @param blockTag
|
|
16
|
-
*/
|
|
17
|
-
fetchAndSaveBlockTime(blockTag) {
|
|
18
|
-
const blockTagStr = blockTag.toString(10);
|
|
19
|
-
const blockTimePromise = this.provider.getBlock(blockTag, false).then(result => result.timestamp);
|
|
20
|
-
const timestamp = Date.now();
|
|
21
|
-
this.blockCache[blockTagStr] = {
|
|
22
|
-
blockTime: blockTimePromise,
|
|
23
|
-
timestamp
|
|
24
|
-
};
|
|
25
|
-
blockTimePromise.catch(e => {
|
|
26
|
-
if (this.blockCache[blockTagStr] != null && this.blockCache[blockTagStr].blockTime === blockTimePromise)
|
|
27
|
-
delete this.blockCache[blockTagStr];
|
|
28
|
-
throw e;
|
|
29
|
-
});
|
|
30
|
-
return {
|
|
31
|
-
blockTime: blockTimePromise,
|
|
32
|
-
timestamp
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
cleanupBlocks() {
|
|
36
|
-
const currentTime = Date.now();
|
|
37
|
-
//Keys are in order that they were added, so we can stop at the first non-expired block
|
|
38
|
-
for (let key in this.blockCache) {
|
|
39
|
-
const block = this.blockCache[key];
|
|
40
|
-
if (currentTime - block.timestamp > this.BLOCK_CACHE_TIME) {
|
|
41
|
-
delete this.blockCache[key];
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
///////////////////
|
|
49
|
-
//// Blocks
|
|
50
|
-
/**
|
|
51
|
-
* Gets the block for a given blocktag, with caching
|
|
52
|
-
*
|
|
53
|
-
* @param blockTag
|
|
54
|
-
*/
|
|
55
|
-
getBlockTime(blockTag) {
|
|
56
|
-
this.cleanupBlocks();
|
|
57
|
-
let cachedBlockData = this.blockCache[blockTag.toString(10)];
|
|
58
|
-
if (cachedBlockData == null || Date.now() - cachedBlockData.timestamp > this.BLOCK_CACHE_TIME) {
|
|
59
|
-
cachedBlockData = this.fetchAndSaveBlockTime(blockTag);
|
|
60
|
-
}
|
|
61
|
-
return cachedBlockData.blockTime;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
exports.EVMBlocks = EVMBlocks;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVMBlocks = void 0;
|
|
4
|
+
const EVMModule_1 = require("../EVMModule");
|
|
5
|
+
class EVMBlocks extends EVMModule_1.EVMModule {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.BLOCK_CACHE_TIME = 5 * 1000;
|
|
9
|
+
this.blockCache = {};
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Initiates fetch of a given block & saves it to cache
|
|
13
|
+
*
|
|
14
|
+
* @private
|
|
15
|
+
* @param blockTag
|
|
16
|
+
*/
|
|
17
|
+
fetchAndSaveBlockTime(blockTag) {
|
|
18
|
+
const blockTagStr = blockTag.toString(10);
|
|
19
|
+
const blockTimePromise = this.provider.getBlock(blockTag, false).then(result => result.timestamp);
|
|
20
|
+
const timestamp = Date.now();
|
|
21
|
+
this.blockCache[blockTagStr] = {
|
|
22
|
+
blockTime: blockTimePromise,
|
|
23
|
+
timestamp
|
|
24
|
+
};
|
|
25
|
+
blockTimePromise.catch(e => {
|
|
26
|
+
if (this.blockCache[blockTagStr] != null && this.blockCache[blockTagStr].blockTime === blockTimePromise)
|
|
27
|
+
delete this.blockCache[blockTagStr];
|
|
28
|
+
throw e;
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
blockTime: blockTimePromise,
|
|
32
|
+
timestamp
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
cleanupBlocks() {
|
|
36
|
+
const currentTime = Date.now();
|
|
37
|
+
//Keys are in order that they were added, so we can stop at the first non-expired block
|
|
38
|
+
for (let key in this.blockCache) {
|
|
39
|
+
const block = this.blockCache[key];
|
|
40
|
+
if (currentTime - block.timestamp > this.BLOCK_CACHE_TIME) {
|
|
41
|
+
delete this.blockCache[key];
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
///////////////////
|
|
49
|
+
//// Blocks
|
|
50
|
+
/**
|
|
51
|
+
* Gets the block for a given blocktag, with caching
|
|
52
|
+
*
|
|
53
|
+
* @param blockTag
|
|
54
|
+
*/
|
|
55
|
+
getBlockTime(blockTag) {
|
|
56
|
+
this.cleanupBlocks();
|
|
57
|
+
let cachedBlockData = this.blockCache[blockTag.toString(10)];
|
|
58
|
+
if (cachedBlockData == null || Date.now() - cachedBlockData.timestamp > this.BLOCK_CACHE_TIME) {
|
|
59
|
+
cachedBlockData = this.fetchAndSaveBlockTime(blockTag);
|
|
60
|
+
}
|
|
61
|
+
return cachedBlockData.blockTime;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.EVMBlocks = EVMBlocks;
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { EVMModule } from "../EVMModule";
|
|
2
|
-
import { Log } from "ethers";
|
|
3
|
-
export declare class EVMEvents extends EVMModule<any> {
|
|
4
|
-
/**
|
|
5
|
-
* Returns the all the events occuring in a block range as identified by the contract and keys
|
|
6
|
-
*
|
|
7
|
-
* @param contract
|
|
8
|
-
* @param topics
|
|
9
|
-
* @param startBlock
|
|
10
|
-
* @param endBlock
|
|
11
|
-
* @param abortSignal
|
|
12
|
-
*/
|
|
13
|
-
getBlockEvents(contract: string, topics: (string[] | string | null)[], startBlock?: number, endBlock?: number, abortSignal?: AbortSignal): Promise<Log[]>;
|
|
14
|
-
/**
|
|
15
|
-
* Runs a search backwards in time, processing events from a specific contract and keys
|
|
16
|
-
*
|
|
17
|
-
* @param contract
|
|
18
|
-
* @param topics
|
|
19
|
-
* @param processor called for every batch of returned signatures, should return a value if the correct signature
|
|
20
|
-
* was found, or null if the search should continue
|
|
21
|
-
* @param abortSignal
|
|
22
|
-
* @param genesisHeight Height when the contract was deployed
|
|
23
|
-
*/
|
|
24
|
-
findInEvents<T>(contract: string, topics: (string[] | string | null)[], processor: (signatures: Log[]) => Promise<T>, abortSignal?: AbortSignal, genesisHeight?: number): Promise<T>;
|
|
25
|
-
/**
|
|
26
|
-
* Runs a search forwards in time, processing events from a specific contract and keys
|
|
27
|
-
*
|
|
28
|
-
* @param contract
|
|
29
|
-
* @param topics
|
|
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
|
-
* @param startHeight Blockheight at which to start
|
|
34
|
-
*/
|
|
35
|
-
findInEventsForward<T>(contract: string, topics: (string[] | string | null)[], processor: (signatures: Log[]) => Promise<T>, abortSignal?: AbortSignal, startHeight?: number): Promise<T>;
|
|
36
|
-
}
|
|
1
|
+
import { EVMModule } from "../EVMModule";
|
|
2
|
+
import { Log } from "ethers";
|
|
3
|
+
export declare class EVMEvents extends EVMModule<any> {
|
|
4
|
+
/**
|
|
5
|
+
* Returns the all the events occuring in a block range as identified by the contract and keys
|
|
6
|
+
*
|
|
7
|
+
* @param contract
|
|
8
|
+
* @param topics
|
|
9
|
+
* @param startBlock
|
|
10
|
+
* @param endBlock
|
|
11
|
+
* @param abortSignal
|
|
12
|
+
*/
|
|
13
|
+
getBlockEvents(contract: string, topics: (string[] | string | null)[], startBlock?: number, endBlock?: number, abortSignal?: AbortSignal): Promise<Log[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Runs a search backwards in time, processing events from a specific contract and keys
|
|
16
|
+
*
|
|
17
|
+
* @param contract
|
|
18
|
+
* @param topics
|
|
19
|
+
* @param processor called for every batch of returned signatures, should return a value if the correct signature
|
|
20
|
+
* was found, or null if the search should continue
|
|
21
|
+
* @param abortSignal
|
|
22
|
+
* @param genesisHeight Height when the contract was deployed
|
|
23
|
+
*/
|
|
24
|
+
findInEvents<T>(contract: string, topics: (string[] | string | null)[], processor: (signatures: Log[]) => Promise<T>, abortSignal?: AbortSignal, genesisHeight?: number): Promise<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Runs a search forwards in time, processing events from a specific contract and keys
|
|
27
|
+
*
|
|
28
|
+
* @param contract
|
|
29
|
+
* @param topics
|
|
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
|
+
* @param startHeight Blockheight at which to start
|
|
34
|
+
*/
|
|
35
|
+
findInEventsForward<T>(contract: string, topics: (string[] | string | null)[], processor: (signatures: Log[]) => Promise<T>, abortSignal?: AbortSignal, startHeight?: number): Promise<T>;
|
|
36
|
+
}
|
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EVMEvents = void 0;
|
|
4
|
-
const EVMModule_1 = require("../EVMModule");
|
|
5
|
-
class EVMEvents extends EVMModule_1.EVMModule {
|
|
6
|
-
/**
|
|
7
|
-
* Returns the all the events occuring in a block range as identified by the contract and keys
|
|
8
|
-
*
|
|
9
|
-
* @param contract
|
|
10
|
-
* @param topics
|
|
11
|
-
* @param startBlock
|
|
12
|
-
* @param endBlock
|
|
13
|
-
* @param abortSignal
|
|
14
|
-
*/
|
|
15
|
-
async getBlockEvents(contract, topics, startBlock, endBlock = startBlock, abortSignal) {
|
|
16
|
-
let events = [];
|
|
17
|
-
if (startBlock === endBlock) {
|
|
18
|
-
events = await this.root.provider.getLogs({
|
|
19
|
-
address: contract,
|
|
20
|
-
fromBlock: startBlock == null ? this.root.config.safeBlockTag : startBlock,
|
|
21
|
-
toBlock: endBlock == null ? this.root.config.safeBlockTag : endBlock,
|
|
22
|
-
topics
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
else if (endBlock == null) {
|
|
26
|
-
const safeBlock = await this.root.provider.getBlock(this.root.config.safeBlockTag);
|
|
27
|
-
if (safeBlock.number - startBlock > this.root.config.maxLogsBlockRange) {
|
|
28
|
-
for (let i = startBlock + this.root.config.maxLogsBlockRange; i < safeBlock.number; i += this.root.config.maxLogsBlockRange) {
|
|
29
|
-
events.push(...await this.root.provider.getLogs({
|
|
30
|
-
address: contract,
|
|
31
|
-
fromBlock: i - this.root.config.maxLogsBlockRange,
|
|
32
|
-
toBlock: i,
|
|
33
|
-
topics
|
|
34
|
-
}));
|
|
35
|
-
startBlock = i;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
events.push(...await this.root.provider.getLogs({
|
|
39
|
-
address: contract,
|
|
40
|
-
fromBlock: startBlock == null ? this.root.config.safeBlockTag : startBlock,
|
|
41
|
-
toBlock: endBlock == null ? this.root.config.safeBlockTag : endBlock,
|
|
42
|
-
topics
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
//Both numeric
|
|
47
|
-
if (endBlock - startBlock > this.root.config.maxLogsBlockRange) {
|
|
48
|
-
for (let i = startBlock + this.root.config.maxLogsBlockRange; i < endBlock; i += this.root.config.maxLogsBlockRange) {
|
|
49
|
-
events.push(...await this.root.provider.getLogs({
|
|
50
|
-
address: contract,
|
|
51
|
-
fromBlock: i - this.root.config.maxLogsBlockRange,
|
|
52
|
-
toBlock: i,
|
|
53
|
-
topics
|
|
54
|
-
}));
|
|
55
|
-
startBlock = i;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
events.push(...await this.root.provider.getLogs({
|
|
59
|
-
address: contract,
|
|
60
|
-
fromBlock: startBlock,
|
|
61
|
-
toBlock: endBlock,
|
|
62
|
-
topics
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
return events.filter(val => !val.removed);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Runs a search backwards in time, processing events from a specific contract and keys
|
|
69
|
-
*
|
|
70
|
-
* @param contract
|
|
71
|
-
* @param topics
|
|
72
|
-
* @param processor called for every batch of returned signatures, should return a value if the correct signature
|
|
73
|
-
* was found, or null if the search should continue
|
|
74
|
-
* @param abortSignal
|
|
75
|
-
* @param genesisHeight Height when the contract was deployed
|
|
76
|
-
*/
|
|
77
|
-
async findInEvents(contract, topics, processor, abortSignal, genesisHeight) {
|
|
78
|
-
const { number: latestBlockNumber } = await this.provider.getBlock(this.root.config.safeBlockTag);
|
|
79
|
-
for (let blockNumber = latestBlockNumber; blockNumber >= (genesisHeight ?? 0); blockNumber -= this.root.config.maxLogsBlockRange) {
|
|
80
|
-
const eventsResult = await this.provider.getLogs({
|
|
81
|
-
address: contract,
|
|
82
|
-
topics,
|
|
83
|
-
fromBlock: Math.max(blockNumber - this.root.config.maxLogsBlockRange, 0),
|
|
84
|
-
toBlock: blockNumber === latestBlockNumber ? this.root.config.safeBlockTag : blockNumber
|
|
85
|
-
});
|
|
86
|
-
if (abortSignal != null)
|
|
87
|
-
abortSignal.throwIfAborted();
|
|
88
|
-
const result = await processor(eventsResult.reverse()); //Newest events first
|
|
89
|
-
if (result != null)
|
|
90
|
-
return result;
|
|
91
|
-
}
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Runs a search forwards in time, processing events from a specific contract and keys
|
|
96
|
-
*
|
|
97
|
-
* @param contract
|
|
98
|
-
* @param topics
|
|
99
|
-
* @param processor called for every batch of returned signatures, should return a value if the correct signature
|
|
100
|
-
* was found, or null if the search should continue
|
|
101
|
-
* @param abortSignal
|
|
102
|
-
* @param startHeight Blockheight at which to start
|
|
103
|
-
*/
|
|
104
|
-
async findInEventsForward(contract, topics, processor, abortSignal, startHeight) {
|
|
105
|
-
const { number: latestBlockNumber } = await this.provider.getBlock(this.root.config.safeBlockTag);
|
|
106
|
-
for (let blockNumber = startHeight ?? 0; blockNumber < latestBlockNumber; blockNumber += this.root.config.maxLogsBlockRange) {
|
|
107
|
-
const eventsResult = await this.provider.getLogs({
|
|
108
|
-
address: contract,
|
|
109
|
-
topics,
|
|
110
|
-
fromBlock: blockNumber,
|
|
111
|
-
toBlock: (blockNumber + this.root.config.maxLogsBlockRange) > latestBlockNumber ? this.root.config.safeBlockTag : blockNumber + this.root.config.maxLogsBlockRange
|
|
112
|
-
});
|
|
113
|
-
if (abortSignal != null)
|
|
114
|
-
abortSignal.throwIfAborted();
|
|
115
|
-
const result = await processor(eventsResult); //Oldest events first
|
|
116
|
-
if (result != null)
|
|
117
|
-
return result;
|
|
118
|
-
}
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
exports.EVMEvents = EVMEvents;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVMEvents = void 0;
|
|
4
|
+
const EVMModule_1 = require("../EVMModule");
|
|
5
|
+
class EVMEvents extends EVMModule_1.EVMModule {
|
|
6
|
+
/**
|
|
7
|
+
* Returns the all the events occuring in a block range as identified by the contract and keys
|
|
8
|
+
*
|
|
9
|
+
* @param contract
|
|
10
|
+
* @param topics
|
|
11
|
+
* @param startBlock
|
|
12
|
+
* @param endBlock
|
|
13
|
+
* @param abortSignal
|
|
14
|
+
*/
|
|
15
|
+
async getBlockEvents(contract, topics, startBlock, endBlock = startBlock, abortSignal) {
|
|
16
|
+
let events = [];
|
|
17
|
+
if (startBlock === endBlock) {
|
|
18
|
+
events = await this.root.provider.getLogs({
|
|
19
|
+
address: contract,
|
|
20
|
+
fromBlock: startBlock == null ? this.root.config.safeBlockTag : startBlock,
|
|
21
|
+
toBlock: endBlock == null ? this.root.config.safeBlockTag : endBlock,
|
|
22
|
+
topics
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else if (endBlock == null) {
|
|
26
|
+
const safeBlock = await this.root.provider.getBlock(this.root.config.safeBlockTag);
|
|
27
|
+
if (safeBlock.number - startBlock > this.root.config.maxLogsBlockRange) {
|
|
28
|
+
for (let i = startBlock + this.root.config.maxLogsBlockRange; i < safeBlock.number; i += this.root.config.maxLogsBlockRange) {
|
|
29
|
+
events.push(...await this.root.provider.getLogs({
|
|
30
|
+
address: contract,
|
|
31
|
+
fromBlock: i - this.root.config.maxLogsBlockRange,
|
|
32
|
+
toBlock: i,
|
|
33
|
+
topics
|
|
34
|
+
}));
|
|
35
|
+
startBlock = i;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
events.push(...await this.root.provider.getLogs({
|
|
39
|
+
address: contract,
|
|
40
|
+
fromBlock: startBlock == null ? this.root.config.safeBlockTag : startBlock,
|
|
41
|
+
toBlock: endBlock == null ? this.root.config.safeBlockTag : endBlock,
|
|
42
|
+
topics
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
//Both numeric
|
|
47
|
+
if (endBlock - startBlock > this.root.config.maxLogsBlockRange) {
|
|
48
|
+
for (let i = startBlock + this.root.config.maxLogsBlockRange; i < endBlock; i += this.root.config.maxLogsBlockRange) {
|
|
49
|
+
events.push(...await this.root.provider.getLogs({
|
|
50
|
+
address: contract,
|
|
51
|
+
fromBlock: i - this.root.config.maxLogsBlockRange,
|
|
52
|
+
toBlock: i,
|
|
53
|
+
topics
|
|
54
|
+
}));
|
|
55
|
+
startBlock = i;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
events.push(...await this.root.provider.getLogs({
|
|
59
|
+
address: contract,
|
|
60
|
+
fromBlock: startBlock,
|
|
61
|
+
toBlock: endBlock,
|
|
62
|
+
topics
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
return events.filter(val => !val.removed);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Runs a search backwards in time, processing events from a specific contract and keys
|
|
69
|
+
*
|
|
70
|
+
* @param contract
|
|
71
|
+
* @param topics
|
|
72
|
+
* @param processor called for every batch of returned signatures, should return a value if the correct signature
|
|
73
|
+
* was found, or null if the search should continue
|
|
74
|
+
* @param abortSignal
|
|
75
|
+
* @param genesisHeight Height when the contract was deployed
|
|
76
|
+
*/
|
|
77
|
+
async findInEvents(contract, topics, processor, abortSignal, genesisHeight) {
|
|
78
|
+
const { number: latestBlockNumber } = await this.provider.getBlock(this.root.config.safeBlockTag);
|
|
79
|
+
for (let blockNumber = latestBlockNumber; blockNumber >= (genesisHeight ?? 0); blockNumber -= this.root.config.maxLogsBlockRange) {
|
|
80
|
+
const eventsResult = await this.provider.getLogs({
|
|
81
|
+
address: contract,
|
|
82
|
+
topics,
|
|
83
|
+
fromBlock: Math.max(blockNumber - this.root.config.maxLogsBlockRange, 0),
|
|
84
|
+
toBlock: blockNumber === latestBlockNumber ? this.root.config.safeBlockTag : blockNumber
|
|
85
|
+
});
|
|
86
|
+
if (abortSignal != null)
|
|
87
|
+
abortSignal.throwIfAborted();
|
|
88
|
+
const result = await processor(eventsResult.reverse()); //Newest events first
|
|
89
|
+
if (result != null)
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Runs a search forwards in time, processing events from a specific contract and keys
|
|
96
|
+
*
|
|
97
|
+
* @param contract
|
|
98
|
+
* @param topics
|
|
99
|
+
* @param processor called for every batch of returned signatures, should return a value if the correct signature
|
|
100
|
+
* was found, or null if the search should continue
|
|
101
|
+
* @param abortSignal
|
|
102
|
+
* @param startHeight Blockheight at which to start
|
|
103
|
+
*/
|
|
104
|
+
async findInEventsForward(contract, topics, processor, abortSignal, startHeight) {
|
|
105
|
+
const { number: latestBlockNumber } = await this.provider.getBlock(this.root.config.safeBlockTag);
|
|
106
|
+
for (let blockNumber = startHeight ?? 0; blockNumber < latestBlockNumber; blockNumber += this.root.config.maxLogsBlockRange) {
|
|
107
|
+
const eventsResult = await this.provider.getLogs({
|
|
108
|
+
address: contract,
|
|
109
|
+
topics,
|
|
110
|
+
fromBlock: blockNumber,
|
|
111
|
+
toBlock: (blockNumber + this.root.config.maxLogsBlockRange) > latestBlockNumber ? this.root.config.safeBlockTag : blockNumber + this.root.config.maxLogsBlockRange
|
|
112
|
+
});
|
|
113
|
+
if (abortSignal != null)
|
|
114
|
+
abortSignal.throwIfAborted();
|
|
115
|
+
const result = await processor(eventsResult); //Oldest events first
|
|
116
|
+
if (result != null)
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.EVMEvents = EVMEvents;
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import { JsonRpcApiProvider, TransactionRequest } from "ethers";
|
|
2
|
-
export type EVMFeeRate = {
|
|
3
|
-
maxFeePerGas: bigint;
|
|
4
|
-
maxPriorityFee: bigint;
|
|
5
|
-
};
|
|
6
|
-
export declare class EVMFees {
|
|
7
|
-
protected MAX_FEE_AGE: number;
|
|
8
|
-
protected readonly logger: import("../../../utils/Utils").LoggerType;
|
|
9
|
-
protected readonly provider: JsonRpcApiProvider;
|
|
10
|
-
protected readonly maxFeeRatePerGas: bigint;
|
|
11
|
-
protected readonly priorityFee: bigint;
|
|
12
|
-
protected readonly feeMultiplierPPM: bigint;
|
|
13
|
-
private blockFeeCache;
|
|
14
|
-
constructor(provider: JsonRpcApiProvider, maxFeeRatePerGas?: bigint, priorityFee?: bigint, feeMultiplier?: number);
|
|
15
|
-
/**
|
|
16
|
-
* Gets evm fee rate
|
|
17
|
-
*
|
|
18
|
-
* @private
|
|
19
|
-
* @returns {Promise<bigint>} L1 gas price denominated in Wei
|
|
20
|
-
*/
|
|
21
|
-
private _getFeeRate;
|
|
22
|
-
/**
|
|
23
|
-
* Gets the gas price with caching, format: <base fee Wei>,<priority fee Wei>
|
|
24
|
-
*
|
|
25
|
-
* @private
|
|
26
|
-
*/
|
|
27
|
-
getFeeRate(): Promise<string>;
|
|
28
|
-
/**
|
|
29
|
-
* Calculates the total gas fee paid for a given gas limit at a given fee rate
|
|
30
|
-
*
|
|
31
|
-
* @param gas
|
|
32
|
-
* @param feeRate
|
|
33
|
-
*/
|
|
34
|
-
static getGasFee(gas: number, feeRate: string): bigint;
|
|
35
|
-
static applyFeeRate(tx: TransactionRequest, gas: number, feeRate: string): any;
|
|
36
|
-
}
|
|
1
|
+
import { JsonRpcApiProvider, TransactionRequest } from "ethers";
|
|
2
|
+
export type EVMFeeRate = {
|
|
3
|
+
maxFeePerGas: bigint;
|
|
4
|
+
maxPriorityFee: bigint;
|
|
5
|
+
};
|
|
6
|
+
export declare class EVMFees {
|
|
7
|
+
protected MAX_FEE_AGE: number;
|
|
8
|
+
protected readonly logger: import("../../../utils/Utils").LoggerType;
|
|
9
|
+
protected readonly provider: JsonRpcApiProvider;
|
|
10
|
+
protected readonly maxFeeRatePerGas: bigint;
|
|
11
|
+
protected readonly priorityFee: bigint;
|
|
12
|
+
protected readonly feeMultiplierPPM: bigint;
|
|
13
|
+
private blockFeeCache;
|
|
14
|
+
constructor(provider: JsonRpcApiProvider, maxFeeRatePerGas?: bigint, priorityFee?: bigint, feeMultiplier?: number);
|
|
15
|
+
/**
|
|
16
|
+
* Gets evm fee rate
|
|
17
|
+
*
|
|
18
|
+
* @private
|
|
19
|
+
* @returns {Promise<bigint>} L1 gas price denominated in Wei
|
|
20
|
+
*/
|
|
21
|
+
private _getFeeRate;
|
|
22
|
+
/**
|
|
23
|
+
* Gets the gas price with caching, format: <base fee Wei>,<priority fee Wei>
|
|
24
|
+
*
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
getFeeRate(): Promise<string>;
|
|
28
|
+
/**
|
|
29
|
+
* Calculates the total gas fee paid for a given gas limit at a given fee rate
|
|
30
|
+
*
|
|
31
|
+
* @param gas
|
|
32
|
+
* @param feeRate
|
|
33
|
+
*/
|
|
34
|
+
static getGasFee(gas: number, feeRate: string): bigint;
|
|
35
|
+
static applyFeeRate(tx: TransactionRequest, gas: number, feeRate: string): any;
|
|
36
|
+
}
|