import { NetworkIdentifier, EvmChain } from "@0xsquid/squid-types"; import { ethers } from "ethers"; import { EthersAdapter } from "../../adapters"; import { Fork, Forks, TenderlyConfig, TokenConfig } from "../../types"; export declare class TenderlyTool { isInitialized: boolean; apiBaseURL: string; forks: Forks | undefined; wallets: string[]; relayerAddress: string; chains: EvmChain[]; tenderlyConfig: TenderlyConfig; tokensConfig: TokenConfig[]; constructor({ apiBaseURL, wallets, relayerAddress, chains, tenderlyConfig, tokensConfig, }: { apiBaseURL: string; wallets: string[]; relayerAddress: string; chains: EvmChain[]; tenderlyConfig: { accessKey: string; user: string; project: string; dashboardUrl: string; }; tokensConfig: TokenConfig[]; }); /** * Init the class with the given chains * by default use chains */ initForkChains(): Promise; initVirtualChains(): Promise; validateInit(): void; /** * Fork single chain given an EvmChain * later create a Fork object */ mainnetFork(chain: EvmChain): Promise | undefined>; /** * Delete all available forks */ deleteForks(): Promise; /** * Delete single fork given forkId */ deleteFork(forkId: string): Promise; /** * Return the fork data given a NetworkIdentifier */ getFork(networkId: NetworkIdentifier): Fork; getForkUrl(networkId: NetworkIdentifier): string; /** * Method used to fund native and token balance * for the available forked chains and token listed on the config */ fundAllChains(): Promise; /** * Method used to set native balance with tenderly_setBalance rpc call */ fundNative({ wallets, provider, amount, // wei networkIdentifier, }: { wallets: string[]; provider: ethers.providers.JsonRpcProvider; amount?: string; networkIdentifier?: NetworkIdentifier; }): Promise; /** * Given the token and provider this method try to set the erc20 balance * by default try tenderly_setErc20Balance rpc call * fallback tenderly_setStorageAt (requires balanceOf slot memory) */ fundToken({ wallets, tokenAddress, amount, // wei provider, networkIdentifier, }: { wallets: string[]; tokenAddress: string; amount?: string; provider: ethers.providers.JsonRpcProvider; networkIdentifier: string; }): Promise; getBalances({ walletAddress, tokenAddress, adapter, isNative, }: { walletAddress: string; tokenAddress: string; adapter: EthersAdapter; isNative: boolean; }): Promise; }