/** * Network × asset matrix for x402 `exact` accepts. * * Honesty rules: * - Default active accept = primary Base USDC (dev: Base Sepolia) — Render-safe. * - CDP facilitator “live” networks per docs (Base, Polygon, Arbitrum, Solana, …). * - Optimism / BSC / Ethereum: config-ready asset addresses; facilitator-dependent. * - TRON: planned only — never emitted into `accepts[]` (no scheme in current deps). * - Solana: experimental stub unless operator opts in (`ACCEPTS_JSON` / `NETWORKS` + payTo). * * USDC: https://developers.circle.com/stablecoins/usdc-contract-addresses * USDT: Tether / chain explorers (bridged where no native); BSC-USD is 18 decimals. * CDP: https://docs.cdp.coinbase.com/x402/network-support */ export type AssetSymbol = "USDC" | "USDT"; export type FacilitatorStatus = "live" | "config-ready" | "experimental" | "planned"; export type TransferMethod = "eip3009" | "permit2" | "spl" | "none"; export type AssetEntry = { symbol: AssetSymbol; /** Contract address (EVM) or mint (Solana). */ asset: string; decimals: number; /** EIP-712 token name (EVM) / display name. */ name: string; /** EIP-712 version for EVM exact; omit for SVM. */ version?: string; transferMethod: TransferMethod; }; export type NetworkCatalogEntry = { network: string; label: string; family: "eip155" | "solana" | "tron"; status: FacilitatorStatus; /** FeeSplitterFactory live on this chain in-repo. */ factoryLive: boolean; assets: AssetEntry[]; notes: string; }; /** CAIP-2 / planned ids used in docs + env. */ export declare const SOLANA_MAINNET = "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"; export declare const SOLANA_DEVNET = "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1"; /** Placeholder — not a facilitated x402 CAIP-2 in current deps. */ export declare const TRON_MAINNET_PLANNED = "tron:mainnet"; /** Human-friendly network aliases → CAIP-2 (env NETWORKS / X402_NETWORKS). */ export declare const NETWORK_ALIASES: Record; export declare function normalizeNetworkId(raw: string): string; /** * Canonical catalog. Status reflects CDP facilitator docs + this repo’s wiring — * not a claim that every ERC-20 on every chain is production-settled here. */ export declare const NETWORK_CATALOG: Record; /** @deprecated Prefer resolveAsset / NETWORK_CATALOG — kept for callers expecting USDC-only map. */ export declare const DEFAULT_USDC: Record; export type AcceptSpec = { network: string; symbol: AssetSymbol; asset: string; decimals: number; name: string; version?: string; transferMethod: TransferMethod; status: FacilitatorStatus; /** Optional override payTo (required for Solana when seller is EVM-only). */ payTo?: string; }; export declare function isEip155(network: string): boolean; export declare function isSolana(network: string): boolean; export declare function isPlannedNetwork(network: string): boolean; export declare function resolveAsset(network: string, symbol?: AssetSymbol): AssetEntry | undefined; export declare function usdcForNetwork(network: string): { asset: `0x${string}`; decimals: number; }; /** * Parse NETWORK / NETWORKS into primary + list (EVM + optional Solana). * Planned networks (TRON) are rejected here — use docs / health matrix only. * Aliases: X402_NETWORKS, X402_NETWORK; names like `base`, `optimism` accepted. */ export declare function parseNetworksList(env: NodeJS.ProcessEnv, fallbackPrimary: string): { network: string; networks: string[]; }; /** * Build active accept specs. * Priority: ACCEPTS_JSON / X402_ACCEPTS_JSON → NETWORKS × ASSETS → primary USDC only. */ export declare function parseAcceptSpecs(env: NodeJS.ProcessEnv, networks: string[], primaryNetwork: string): AcceptSpec[]; export declare function parseFactoryAddresses(env: NodeJS.ProcessEnv, primaryNetwork: string, tryParse: (raw: string) => `0x${string}` | undefined): { factoryAddress: `0x${string}` | undefined; factoryAddresses: Record; }; /** Full honesty matrix for README /health (includes planned TRON). */ export declare function fullNetworkMatrixPublic(factoryAddresses?: Record): Array<{ network: string; label: string; family: string; status: FacilitatorStatus; assets: Array<{ symbol: string; address: string; decimals: number; transferMethod: string; }>; factoryAddress: string | null; factoryLive: boolean; notes: string; }>; export declare function networkMatrixPublic(networks: string[], factoryAddresses: Record): Array<{ network: string; label: string; usdc: string | null; factoryAddress: `0x${string}` | null; factoryStatus: "live" | "config-ready" | "unknown"; }>;