79 lines
2.2 KiB
TOML
79 lines
2.2 KiB
TOML
|
|
[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 <name> and --etherscan-api-key flags instead, where <name>
|
||
|
|
# 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
|
||
|
|
|