import { Address } from '@hyperlane-xyz/utils'; import { ContractVerifier } from '../deploy/verify/ContractVerifier.js'; import { DerivedTokenFeeConfig, EvmTokenFeeReader } from '../fee/EvmTokenFeeReader.js'; import { EvmHookReader } from '../hook/EvmHookReader.js'; import { EvmIsmReader } from '../ism/EvmIsmReader.js'; import { MultiProvider } from '../providers/MultiProvider.js'; import { EvmRouterReader } from '../router/EvmRouterReader.js'; import { DestinationGas } from '../router/types.js'; import { ChainName, ChainNameOrId, DeployedOwnableConfig } from '../types.js'; import { NormalizedScale } from '../utils/decimals.js'; import { TokenType } from './config.js'; import { ContractVerificationStatus, DerivedTokenRouterConfig, HypTokenConfig, HypTokenRouterVirtualConfig, OwnerStatus, TokenMetadata, XERC20TokenMetadata } from './types.js'; export declare const TOKEN_FEE_CONTRACT_VERSION = "10.0.0"; export declare const CCTP_PPM_STORAGE_VERSION = "10.2.0"; export declare const CCTP_PPM_PRECISION_VERSION = "11.0.0"; export declare class EvmWarpRouteReader extends EvmRouterReader { protected readonly multiProvider: MultiProvider; protected readonly chain: ChainNameOrId; protected readonly concurrency: number; protected readonly logger: import("pino").default.Logger; protected readonly deriveTokenConfigMap: Record Promise) | null>; evmHookReader: EvmHookReader; evmIsmReader: EvmIsmReader; evmTokenFeeReader: EvmTokenFeeReader; contractVerifier: ContractVerifier; constructor(multiProvider: MultiProvider, chain: ChainNameOrId, concurrency?: number, contractVerifier?: ContractVerifier); /** * Derives the configuration for a Hyperlane warp route token router contract at the given address. * * @param warpRouteAddress - The address of the Hyperlane warp route token router contract. * @returns The configuration for the Hyperlane warp route token router. * */ deriveWarpRouteConfig(warpRouteAddress: Address): Promise; fetchTokenFee(routerAddress: Address, destinations?: number[]): Promise; getContractVerificationStatus(chain: ChainName, address: Address): Promise>; getOwnerStatus(chain: ChainName, address: Address): Promise>; deriveWarpRouteVirtualConfig(chain: ChainName, address: Address): Promise; /** * Derives the token type for a given Warp Route address using specific methods * * @param warpRouteAddress - The Warp Route address to derive the token type for. * @returns The derived token type, which can be one of: collateralVault, collateral, native, or synthetic. */ deriveTokenType(warpRouteAddress: Address): Promise; private isNativeWarpToken; private isSyntheticWarpToken; fetchXERC20Config(xERC20Address: Address, warpRouteAddress: Address): Promise; /** * Fetches the metadata for a token address. * * @param warpRouteAddress - The address of the token. * @returns A partial ERC20 metadata object containing the token name, symbol, total supply, and decimals. * Throws if unsupported token type */ fetchTokenConfig(type: TokenType, warpRouteAddress: Address): Promise; private deriveHypXERC20TokenConfig; private deriveHypXERC20LockboxTokenConfig; private deriveHypCollateralCctpTokenConfig; private deriveHypCollateralTokenConfig; private deriveHypCollateralFiatTokenConfig; private deriveHypCollateralVaultTokenConfig; private deriveHypCollateralVaultRebaseTokenConfig; private deriveHypSyntheticTokenConfig; private deriveHypNativeTokenConfig; private deriveOpL2TokenConfig; private deriveOpL1TokenConfig; private deriveHypSyntheticRebaseConfig; private deriveEverclearBaseBridgeConfig; private deriveEverclearEthTokenBridgeConfig; private deriveEverclearCollateralTokenBridgeConfig; /** * Derives the configuration for a MultiCollateral router. */ private deriveMultiCollateralTokenConfig; fetchERC20Metadata(tokenAddress: Address): Promise; /** * Fetches the scale configuration from a TokenRouter contract. * Handles version compatibility based on contract version - reads scaleNumerator/scaleDenominator * for contracts >= 11.0.0, otherwise reads legacy scale value. * * @param tokenRouterAddress - The address of the TokenRouter contract. * @returns The scale as a NormalizedScale, or undefined when the scale is the identity (1/1). */ fetchScale(tokenRouterAddress: Address): Promise; fetchPackageVersion(address: Address): Promise; fetchProxyAdminConfig(tokenAddress: Address): Promise; fetchDestinationGas(warpRouteAddress: Address, additionalDomains?: number[]): Promise; } //# sourceMappingURL=EvmWarpRouteReader.d.ts.map