Files
liquid/foundry.toml

115 lines
3.2 KiB
TOML

[profile.lite]
src = "src"
out = 'out'
libs = ['lib']
solc_version = "0.8.28"
evm_version = "cancun"
optimizer_runs = 800
ignored_error_codes = [1878]
bytecode_hash="ipfs"
rpc_storage_caching = { chains = "all", endpoints = "remote" }
# fuzz runs configured under [profile.lite.fuzz] below
[profile.lite.fuzz]
runs = 5
[profile.test]
src = "src"
out = "out"
libs = ["lib"]
optimizer = true
optimizer_runs = 800
via_ir = false
evm_version = "cancun"
solc = "0.8.28"
verbosity = 2
ffi = true
[profile.default.invariant]
runs = 16
depth = 256
fail_on_revert = true
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
optimizer = true
optimizer_runs = 800
via_ir = true
evm_version = "cancun"
solc = "0.8.28"
verbosity = 2
ffi = true
[profile.default.optimizer_details]
yul = true
# Remappings live in remappings.txt and only there. A second copy here read as a
# key of the table above it -- TOML puts a bare key under the last header, and
# the last header is `optimizer_details` -- so it never applied to anything, and
# the build worked the whole time on the file. Two homes for one fact, one of
# them silent.
[profile.intense.fuzz]
runs = 10000
max_test_rejects = 999999
[fmt]
line_length = 160
number_underscore = "thousands"
[rpc_endpoints]
anvil = "http://127.0.0.1:8545"
mainnet = "${MAINNET_API_KEY}"
sepolia = "${SEPOLIA_API_KEY}"
# Lux Network Endpoints
lux_mainnet = "http://127.0.0.1:9630/v1/chain/C/rpc"
lux_testnet = "http://127.0.0.1:9640/v1/chain/C/rpc"
lux_mainnet_public = "https://api.lux.network/v1/chain/C/rpc"
lux_testnet_public = "https://api.testnet.lux.network/v1/chain/C/rpc"
# Zoo Network Endpoints
zoo_mainnet = "http://127.0.0.1:9630/v1/chain/Zoo/rpc"
zoo_testnet = "http://127.0.0.1:9640/v1/chain/Zoo/rpc"
zoo_mainnet_public = "https://api.zoo.network/v1/chain/Zoo/rpc"
# Hanzo Network Endpoints
hanzo_mainnet = "http://127.0.0.1:9630/v1/chain/Hanzo/rpc"
hanzo_testnet = "http://127.0.0.1:9640/v1/chain/Hanzo/rpc"
hanzo_mainnet_public = "https://api.hanzo.network/v1/chain/Hanzo/rpc"
[etherscan]
mainnet = { key = "${ETHERSCAN_API_KEY}" }
sepolia = { key = "${ETHERSCAN_API_KEY}" }
# Lux Network Explorers (Blockscout-compatible verification)
lux_mainnet = { key = "${LUX_EXPLORER_API_KEY}", url = "https://explore.lux.network/api" }
lux_testnet = { key = "${LUX_EXPLORER_API_KEY}", url = "https://explore.testnet.lux.network/api" }
zoo_mainnet = { key = "${ZOO_EXPLORER_API_KEY}", url = "https://explore.zoo.network/api" }
hanzo_mainnet = { key = "${HANZO_EXPLORER_API_KEY}", url = "https://explore.hanzo.network/api" }
# Lint: only run safety lints, suppress naming convention notes
# Naming follows upstream forks for ABI compatibility
[profile.default.lint]
severity = ["high", "med"]
exclude_lints = [
"mixed-case-function",
"mixed-case-variable",
"screaming-snake-case-immutable",
"screaming-snake-case-const",
"unwrapped-modifier-logic",
"named-struct-fields",
"pascal-case-struct",
"unsafe-cheatcode",
"unaliased-plain-import",
"erc20-unchecked-transfer",
"unsafe-typecast",
"divide-before-multiply",
]
# Only lint production contracts, not tests/mocks
ignore = ["src/test/**", "src/mocks/**"]
# See more config options https://github.com/foundry-rs/foundry/tree/master/config