import { Address } from '@hyperlane-xyz/utils'; import { MultiProtocolProvider } from '../providers/MultiProtocolProvider.js'; import { MultiProvider } from '../providers/MultiProvider.js'; import { ChainNameOrId } from '../types.js'; import { HyperlaneReader } from '../utils/HyperlaneReader.js'; import { RateLimitMidPoint, xERC20Limits } from './adapters/ITokenAdapter.js'; import { XERC20Type } from './types.js'; export interface StandardXERC20Limits { type: typeof XERC20Type.Standard; mint: string; burn: string; } export interface VeloXERC20Limits { type: typeof XERC20Type.Velo; bufferCap: string; rateLimitPerSecond: string; } /** * Unified XERC20 limits type */ export type XERC20Limits = StandardXERC20Limits | VeloXERC20Limits; /** * Map of bridge addresses to their limits */ export type XERC20LimitsMap = Record; /** * Reader for on-chain XERC20 state. * Reads limits and bridge configurations from XERC20 contracts. */ export declare class EvmXERC20Reader extends HyperlaneReader { protected readonly multiProvider: MultiProvider; protected logger: import("pino").default.Logger; protected readonly multiProtocolProvider: MultiProtocolProvider; constructor(multiProvider: MultiProvider, chain: ChainNameOrId); deriveXERC20TokenType(xERC20Address: Address): Promise; /** * Read current limits for the specified bridges. */ readLimits(xERC20Address: Address, bridges: Address[], type: XERC20Type): Promise; /** * Read all bridges configured on-chain for a Velodrome XERC20 by parsing ConfigurationChanged events. * Returns empty array for Standard XERC20 since it has no event-based bridge enumeration. * Note: Queries from block 0 which may be slow on chains with long histories. */ readOnChainBridges(xERC20Address: Address, type: XERC20Type): Promise; protected toStandardLimits(limits: xERC20Limits): StandardXERC20Limits; protected toVeloLimits(rateLimits: RateLimitMidPoint): VeloXERC20Limits; } export declare function limitsAreZero(limits: XERC20Limits): boolean; export declare function limitsMatch(a: XERC20Limits, b: XERC20Limits): boolean; //# sourceMappingURL=EvmXERC20Reader.d.ts.map