import { Estimate, NetworkIdentifier, RouteRequest, SquidData, Token, EvmChain } from "@0xsquid/squid-types"; import { ethers } from "ethers"; import { EthersAdapter } from "../adapters"; export type Fork = { rpcUrl: string; adapter: EthersAdapter; fork: any; chain: EvmChain; }; export type Forks = { [key: string]: Fork; }; export type RouteData = { estimate: Estimate; transactionRequest: SquidData; params: RouteRequest; }; export type TokenConfig = Pick & { networkIdentifier: NetworkIdentifier; native?: boolean; wrapped?: boolean; routing?: boolean; routingPair?: boolean; }; export type TestScenario = { description: string; isNativeInput: boolean; isNativeOutput: boolean; fromTokenCondition: (token: TokenConfig, index: number) => boolean; toTokenCondition: (token: TokenConfig, index: number) => boolean; preHook?: boolean; postHook?: boolean; failOnDestination?: boolean; sameFromToAddress?: boolean; }; export type TxExecuted = { tx: ethers.providers.TransactionReceipt; gasUsed: bigint; gasEstimated: bigint; }; export type GasData = { gasLimit: string; gasPrice?: string; maxPriorityFeePerGas?: string; maxFeePerGas?: string; }; export type TenderlyConfig = { accessKey: string; user: string; project: string; dashboardUrl: string; };