[profile.default] src = "contracts" test = "test" script = "script" out = "out" libs = ["lib"] solc_version = "0.8.20" optimizer = true optimizer_runs = 200 via_ir = false evm_version = "london" auto_detect_solc = false # Enable via-ir for contracts with stack too deep issues [profile.via-ir] via_ir = true # Note: Foundry doesn't support 'exclude' in profiles # To exclude CCIP integration contracts, move them outside the 'contracts' directory # or use a different build system (e.g., Hardhat) [profile.ci] fuzz = { runs = 10000 } invariant = { runs = 1000 } [rpc_endpoints] mainnet = "${ETHEREUM_MAINNET_RPC}" cronos = "${CRONOS_RPC_URL}" bsc = "${BSC_RPC_URL}" polygon = "${POLYGON_RPC_URL}" gnosis = "${GNOSIS_RPC_URL}" avalanche = "${AVALANCHE_RPC_URL}" base = "${BASE_RPC_URL}" arbitrum = "${ARBITRUM_RPC_URL}" optimism = "${OPTIMISM_RPC_URL}" chain138 = "${RPC_URL_138:-http://localhost:8545}" [fmt] line_length = 120 tab_width = 4 bracket_spacing = true int_types = "long" multiline_func_header = "all" [doc] out = "docs/contracts" prefix = "" [etherscan] mainnet = { key = "${ETHERSCAN_API_KEY}" } cronos = { key = "${CRONOSCAN_API_KEY}", chain = "cronos" } bsc = { key = "${BSCSCAN_API_KEY}", chain = "bsc" } polygon = { key = "${POLYGONSCAN_API_KEY}", chain = "polygon" } gnosis = { key = "${GNOSISSCAN_API_KEY}", chain = "gnosis" } avalanche = { key = "${SNOWTRACE_API_KEY}", chain = "avalanche" } base = { key = "${BASESCAN_API_KEY}", chain = "base" } arbitrum = { key = "${ARBISCAN_API_KEY}", chain = "arbitrum" } optimism = { key = "${OPTIMISTIC_ETHERSCAN_API_KEY}", chain = "optimism" } chain138 = { key = "${ETHERSCAN_API_KEY}" } # Note: Foundry profiles don't support rpc_url and etherscan keys. # Use --rpc-url and --etherscan-api-key flags instead, where # references entries in [rpc_endpoints] and [etherscan] sections above. # # Example usage: # forge script ... --rpc-url mainnet --etherscan-api-key $ETHERSCAN_API_KEY # forge script ... --rpc-url polygon --etherscan-api-key $POLYGONSCAN_API_KEY # # Chain IDs for reference: # mainnet: 1 # cronos: 25 # bsc: 56 # polygon: 137 # gnosis: 100 # avalanche: 43114 # base: 8453 # arbitrum: 42161 # optimism: 10