import type { Address, Chain } from "viem"; import { z } from "zod/v4"; /** * Known curator names that manage Gearbox markets. * **/ export type Curator = "Chaos Labs" | "K3" | "cp0x" | "Re7" | "Invariant Group" | "Tulipa" | "M11 Credit" | "KPK" | "Hyperithm" | "UltraYield" | "TelosC" | "Gami Labs" | "Securitize"; /** * Extended viem {@link Chain} with Gearbox-specific metadata. * * Every supported network is represented by a `GearboxChain` instance in * the {@link chains} record. **/ export interface GearboxChain extends Chain { /** * Gearbox network type label (e.g. `"Mainnet"`, `"Arbitrum"`). **/ network: NetworkType; /** * Market configurator addresses operated by known curators on this chain. **/ defaultMarketConfigurators: Record
; /** * Known RWA factory addresses on this chain */ rwaFactories: Address[]; /** * Market configurators used in test/staging environments. **/ testMarketConfigurators?: Record; /** * Whether this chain is production-ready **/ isPublic: boolean; /** * A well-known ERC-20 token that uniquely identifies this chain. * * Used by {@link detectNetwork} to determine which chain an arbitrary * RPC endpoint is connected to. **/ wellKnownToken: { address: Address; symbol: string; }; /** * Block number when the Gearbox address provider was deployed. **/ firstBlock?: bigint; /** * Default read-only calls gas limit for this chain. */ gasLimit: bigint; } /** * Tuple of all network labels the SDK can work with. **/ export declare const SUPPORTED_NETWORKS: readonly ["Mainnet", "Arbitrum", "Optimism", "Base", "Sonic", "MegaETH", "Monad", "Berachain", "Avalanche", "BNB", "WorldChain", "Etherlink", "Hemi", "Lisk", "Plasma", "Somnia"]; /** * Zod schema for validating/parsing network type strings. **/ export declare const NetworkType: z.ZodEnum<{ Mainnet: "Mainnet"; Arbitrum: "Arbitrum"; Optimism: "Optimism"; Base: "Base"; Sonic: "Sonic"; MegaETH: "MegaETH"; Monad: "Monad"; Berachain: "Berachain"; Avalanche: "Avalanche"; BNB: "BNB"; WorldChain: "WorldChain"; Etherlink: "Etherlink"; Hemi: "Hemi"; Lisk: "Lisk"; Plasma: "Plasma"; Somnia: "Somnia"; }>; /** * All supported Gearbox network labels **/ export type NetworkType = z.infer