/** * Represents a single token configuration entry. * @remarks * Most fields correspond to deployed contracts and per-chain RPC configuration. * Addresses are expected to be `0x`-prefixed hex strings (see normalization helpers). */ export interface TokenEntry { /** Human-readable label used for display and debugging. */ label: string; /** zERC20 token contract address on this chain. */ tokenAddress: string; /** Verifier contract address for this zERC20 instance. */ verifierAddress: string; /** Optional minter contract address (if applicable for this deployment). */ minterAddress?: string; /** Optional liquidity manager contract address (wrap/unwrap flows). */ liquidityManagerAddress?: string; /** Optional LayerZero adaptor address (cross-chain unwrap flows). */ adaptorAddress?: string; /** * Optional LayerZero endpoint id (EID) for cross-chain operations. * @remarks Required for OFT send / cross-chain unwrap flows. */ eid?: number; /** EVM chain id for this entry. */ chainId: bigint; /** Block number where the token was deployed (used for event scanning/indexer bootstrapping). */ deployedBlockNumber: bigint; /** One or more RPC URLs for this chain. */ rpcUrls: string[]; /** * Whether to use legacy (type-0) transactions for this chain. * @remarks Useful for chains/providers that do not support EIP-1559 style fees. */ legacyTx: boolean; } /** * Represents a hub configuration entry. * @remarks * The hub is used when fetching aggregation tree state. */ export interface HubEntry { /** Hub contract address. */ hubAddress: string; /** EVM chain id for the hub chain. */ chainId: bigint; /** * Optional LayerZero endpoint id (EID) for the hub chain. * @remarks Required for certain cross-chain flows. */ eid?: number; /** One or more RPC URLs for the hub chain. */ rpcUrls: string[]; } /** * Raw tokens file structure before normalization. * @remarks * Callers typically use `normalizeTokens` / `TokensCacheManager.load()` to validate and normalize this structure. */ export interface TokensFile { hub?: HubEntry; tokens: TokenEntry[]; } /** * Normalized tokens with raw data preserved. */ export interface NormalizedTokens { hub?: HubEntry; tokens: TokenEntry[]; raw: TokensFile; } /** * RPC URL overrides applied before normalization. * @remarks * Used to replace JSON-bundled RPC URLs with runtime-configured endpoints * (e.g. environment-specific Alchemy/Infura keys). */ export interface RpcOverrides { /** token label → rpc URLs mapping */ tokens?: Record; /** hub rpc URLs override */ hub?: string[]; } /** * Options for loading tokens from compressed data. */ export interface LoadTokensOptions { cacheKey?: string; decoder?: TextDecoder; decompress?: (data: Uint8Array) => Uint8Array | ArrayBuffer; } //# sourceMappingURL=types.d.ts.map