npm install
- Make sure your submodules in /lib are
optimism@2073f4059bd806af3e8b76b820aa3fa0b42016d0
(cd /lib/optimism/ && git fetch --tags && git checkout op-contracts/v1.8.0) andfrax-standard-solidity@latest
. See https://www.git-scm.com/book/en/v2/Git-Tools-Submodules for additional help - cd into lib/optimism/packages/contracts-bedrock,
- forge install, to update the bedrock lib submodules
- Go back to the project root and run
pnpm install && pnpm build
. - Install the Go binary.
foundryup
forge install
forge build
- Set up your
.env
based on.env.EXAMPLE
- In your
.env
, set FOUNDRY_PROFILE to the folder group you want to work with
MAKE SURE TO SET YOUR .env
to FOUNDRY_PROFILE="fraxtal"
or FOUNDRY_PROFILE="vefxs"
or FOUNDRY_PROFILE="miscellany"
DUE TO SOLC VERSIONING ISSUES, AS MENTIONED ABOVE
clear && source .env && forge test --fork-url $MAINNET_RPC_URL --match-path ./src/test/VestedFXS-and-Flox/e2e/E2E_VeFXS.t.sol --match-contract Fuzz_MegaTest_VeFXS -vvvvv
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0xfc00000000000000000000000000000000000001
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0xfc00000000000000000000000000000000000002
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0xfc00000000000000000000000000000000000006
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0x4200000000000000000000000000000000000019
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0x4200000000000000000000000000000000000015
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0x4200000000000000000000000000000000000007
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0x4200000000000000000000000000000000000010
source .env && cast storage --chain-id 252 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0xBFc4D34Db83553725eC6c768da71D2D9c1456B55
source .env && cast storage --chain-id 1 --rpc-url $L1_DEVNET_RPC_URL 0xD943EF21D6Af93DDF42a5cc91Ca46D7dA8582339
source .env && cast storage --chain-id 252 --rpc-url $L2_DEVNET_RPC_URL 0xFc00000000000000000000000000000000000002 --etherscan-api-key $FRAXTAL_API_KEY
source .env && cast storage --chain-id 252 --rpc-url $L2_DEVNET_RPC_URL 0xFc00000000000000000000000000000000000009 --etherscan-api-key $FRAXTAL_API_KEY
source .env && cast storage --chain-id 252 --rpc-url $L2_DEVNET_RPC_URL 0xFc0000000000000000000000000000000000000a --etherscan-api-key $FRAXTAL_API_KEY
source .env && cast storage --chain-id 252 --rpc-url $L2_DEVNET_RPC_URL 0xFcc0d3000000000000000000000000000000000A --etherscan-api-key $FRAXTAL_API_KEY
source .env && cast storage --chain-id 1 --rpc-url $MAINNET_RPC_URL 0x126bcc31Bc076B3d515f60FBC81FddE0B0d542Ed
source .env && cast storage --chain-id 1 --rpc-url $MAINNET_RPC_URL 0xCC26248B71284B812Ff7825e005560DB01a874C7
forge inspect src/contracts/Fraxtal/universal/ERC20ExPPOMWrapped.sol:ERC20ExPPOMWrapped storageLayout
forge inspect src/contracts/Fraxtal/universal/ERC20ExWrappedPPOM.sol:ERC20ExWrappedPPOM storageLayout
forge inspect src/contracts/Fraxtal/L1/FraxtalPortal.sol:FraxtalPortal storageLayout
forge inspect src/contracts/Fraxtal/L1/FraxtalPortal2.sol:FraxtalPortal2 storageLayout
forge inspect src/contracts/Fraxtal/L1/L1CrossDomainMessengerFxtl.sol:L1CrossDomainMessengerFxtl storageLayout
forge inspect src/contracts/Miscellany/FraxtalERC4626MintRedeemer.sol:FraxtalERC4626MintRedeemer storageLayout
forge inspect src/contracts/Fraxtal/L2/BaseFeeVaultCGT.sol:BaseFeeVaultCGT storageLayout
forge inspect src/contracts/Fraxtal/L2/L1BlockCGT.sol:L1BlockCGT storageLayout
forge inspect src/contracts/Fraxtal/universal/ERC20ExPPOMWrapped.sol:ERC20ExPPOMWrapped abi --pretty
forge inspect src/contracts/Fraxtal/universal/ERC20ExWrappedPPOM.sol:ERC20ExWrappedPPOM abi --pretty
forge inspect src/contracts/Fraxtal/universal/ERC20PermitPermissionedOptiMintable.sol:ERC20PermitPermissionedOptiMintable abi --pretty
forge inspect src/contracts/Fraxtal/L1/FraxtalPortal2.sol:FraxtalPortal2 abi --pretty
cast interface src/contracts/Fraxtal/universal/ERC20ExPPOMWrapped.sol:ERC20ExPPOMWrapped
cast interface src/contracts/Fraxtal/universal/ERC20ExWrappedPPOM.sol:ERC20ExWrappedPPOM
cast interface src/contracts/Fraxtal/universal/vanity/wfrxETH.sol:wfrxETH
source .env && forge create src/contracts/Miscellany/frxUSD_Distribution/FrxUSDDistributor.sol:FrxUSDDistributor --chain-id 252 --gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verify --verifier-url $FRAXSCAN_API_URL --verifier-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 1000000 --use "0.8.29" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/VestedFXS-and-Flox/DeployFPISLocker.s.sol:DeployFPISLocker --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 200 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/VestedFXS-and-Flox/DeployL1VeFXSTotalSupplyOracle.s.sol:DeployL1VeFXSTotalSupplyOracle --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/VestedFXS-and-Flox/DeployVeFXSAggregator.s.sol --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/VestedFXS-and-Flox/DeployYieldDistributor.s.sol --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Miscellany/DeployTimedLocker.s.sol:DeployTimedLocker --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Miscellany/DeploySfraxMintRedeemer.s.sol:DeploySfraxMintRedeemer --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Miscellany/DeploySfxEthMintRedeemer.s.sol:DeploySfxEthMintRedeemer --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Miscellany/DeployL1QuitCreditorReceiverConverters.s.sol:DeployL1QuitCreditorReceiverConverters --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/VestedFXS-and-Flox/DeployDoubleOptInVeFXSDelegation.s.sol:DeployDoubleOptInVeFXSDelegation --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Miscellany/DeployFraxFarmQuitCreditors_UniV3.s.sol:DeployFraxFarmQuitCreditors_UniV3 --chain-id 1 --with-gas-price 10000000000 --priority-gas-price 1000 --rpc-url $MAINNET_RPC_URL --verifier-url $ETHERSCAN_API_URL --etherscan-api-key $ETHERSCAN_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --slow --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Miscellany/DeployAaveAMO_V3.s.sol:DeployAaveAMO_V3 --chain-id 1 --with-gas-price 7000000000 --priority-gas-price 1000 --rpc-url $MAINNET_RPC_URL --verifier-url $ETHERSCAN_API_URL --etherscan-api-key $ETHERSCAN_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --slow --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/VestedFXS-and-Flox/UpgradeFPISLocker.s.sol:UpgradeFPISLocker --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 200 --use "0.8.23" --evm-version "paris" --private-key $PK --broadcast
source .env && forge script src/script/VestedFXS-and-Flox/UpgradeVeFXSAggregator.s.sol:UpgradeVeFXSAggregator --chain-id 252 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $FRAXTAL_RPC_URL --verifier-url $FRAXSCAN_API_URL --etherscan-api-key $FRAXTAL_API_KEY --optimize --optimizer-runs 100000 --use "0.8.26" --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/UpgradeDevnetCGT.s.sol:UpgradeDevnetCGT --chain-id 1 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1Misc.s.sol:L1Misc --chain-id 1 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1TestTxs.s.sol:L1TestTxs --chain-id 1 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --private-key $PK --broadcast
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2SetupTestTokens.s.sol:L1L2SetupTestTokens --chain-id 1 --with-gas-price 15000 --priority-gas-price 1000 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --private-key $PK --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/00_L1L2_SetupTestTokens.s.sol:L1L2_SetupTestTokens --chain-id 1 --with-gas-price 17500 --priority-gas-price 1500 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/00_L1L2_SetupTestTokens.s.sol:L1L2_SetupTestTokens --chain-id 252 --with-gas-price 150000000 --priority-gas-price 15000000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/01_L1L2_InitiateDepositsAndWithdrawals.s.sol:L1L2_InitiateDepositsAndWithdrawals --chain-id 1 --with-gas-price 17500 --priority-gas-price 1500 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/01_L1L2_InitiateDepositsAndWithdrawals.s.sol:L1L2_InitiateDepositsAndWithdrawals --chain-id 252 --with-gas-price 150000000 --priority-gas-price 15000000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/00_L1L2_SetupTestTokens.s.sol:L1L2_SetupTestTokens --chain-id 17000 --with-gas-price 4000000 --priority-gas-price 40000 --rpc-url $HOLESKY_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$HOLESKY_API_URL
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/00_L1L2_SetupTestTokens.s.sol:L1L2_SetupTestTokens --chain-id 2522 --with-gas-price 150000000 --priority-gas-price 15000000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/01_L1L2_InitiateDepositsAndWithdrawals.s.sol:L1L2_InitiateDepositsAndWithdrawals --chain-id 17000 --with-gas-price 4000000 --priority-gas-price 40000 --rpc-url $HOLESKY_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verifier=etherscan --retries=3 --verifier-url=$HOLESKY_API_URL
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1L2/01_L1L2_InitiateDepositsAndWithdrawals.s.sol:L1L2_InitiateDepositsAndWithdrawals --chain-id 2522 --with-gas-price 150000000 --priority-gas-price 15000000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/00_L1_DeployImplsAndSSs.s.sol:L1_DeployImplsAndSSs --chain-id 1 --with-gas-price 19500 --priority-gas-price 1700 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/01_L1_GenerateSSSafeBatches.s.sol:L1_GenerateSSSafeBatches --chain-id 1 --with-gas-price 17500 --priority-gas-price 1500 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --retries=3
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/02_L1_GenerateImplUpgradeSafeBatches.s.sol:L1_GenerateImplUpgradeSafeBatches --chain-id 1 --with-gas-price 17500 --priority-gas-price 1500 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --retries=3
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/00_L1_DeployImplsAndSSs.s.sol:L1_DeployImplsAndSSs --chain-id 17000 --with-gas-price 4000000 --priority-gas-price 40000 --rpc-url $HOLESKY_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$HOLESKY_API_URL
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/01_L1_GenerateSSSafeBatches.s.sol:L1_GenerateSSSafeBatches --chain-id 17000 --with-gas-price 4000000 --priority-gas-price 40000 --rpc-url $HOLESKY_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --retries=3 --verify --verifier=etherscan --verifier-url=$HOLESKY_API_URL
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/02_L1_GenerateImplUpgradeSafeBatches.s.sol:L1_GenerateImplUpgradeSafeBatches --chain-id 17000 --with-gas-price 4000000 --priority-gas-price 40000 --rpc-url $HOLESKY_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --retries=3 --verify --verifier=etherscan --verifier-url=$HOLESKY_API_URL
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/00_L1_DeployImplsAndSSs.s.sol:L1_DeployImplsAndSSs --chain-id 1 --with-gas-price 3500000000 --priority-gas-price 350000000 --rpc-url $MAINNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/01_L1_GenerateSSSafeBatches.s.sol:L1_GenerateSSSafeBatches --chain-id 1 --with-gas-price 3500000000 --priority-gas-price 350000000 --rpc-url $MAINNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --retries=3
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/02_L1_GenerateImplUpgradeSafeBatches.s.sol:L1_GenerateImplUpgradeSafeBatches --chain-id 1 --with-gas-price 3500000000 --priority-gas-price 350000000 --rpc-url $MAINNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --retries=3
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/00_L1_DeployImplsAndSSs.s.sol:L1_DeployImplsAndSSs --chain-id 1 --with-gas-price 750000000 --priority-gas-price 75000000 --rpc-url $MAINNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$ETHERSCAN_API_URL --verifier-api-key $ETHERSCAN_API_KEY
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/01_L1_GenerateSSSafeBatches.s.sol:L1_GenerateSSSafeBatches --chain-id 1 --with-gas-price 750000000 --priority-gas-price 75000000 --rpc-url $MAINNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$ETHERSCAN_API_URL --verifier-api-key $ETHERSCAN_API_KEY
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L1/02_L1_GenerateImplUpgradeSafeBatches.s.sol:L1_GenerateImplUpgradeSafeBatches --chain-id 1 --with-gas-price 750000000 --priority-gas-price 75000000 --rpc-url $MAINNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$ETHERSCAN_API_URL --verifier-api-key $ETHERSCAN_API_KEY
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2Misc.s.sol:L2Misc --chain-id 1 --with-gas-price 17500 --priority-gas-price 1500 --rpc-url $L1_DEVNET_RPC_URL --optimize --optimizer-runs 100000 --evm-version "london" --broadcast
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/XX_L2_DeployTestSafe.s.sol:L2_DeployTestSafe --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/XY_L2_FixProxyAdmins.s.sol:L2_FixProxyAdmins --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/00_L2_Deploy2Tokens.s.sol:L2_Deploy2Tokens --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/01_L2_DeployImplsAndSSs.s.sol:L2_DeployImplsAndSSs --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?'
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/02_L2_UpgradeFeeVaults.s.sol:L2_UpgradeFeeVaults --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/03_L2_UpgradePredeploys.s.sol:L2_UpgradePredeploys --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/04_L2_Upgrade2Tokens.s.sol:L2_Upgrade2Tokens --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $L2_DEVNET_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/XX_L2_DeployTestSafe.s.sol:L2_DeployTestSafe --chain-id 2522 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 1000000 --evm-version "london" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/XY_L2_FixProxyAdmins.s.sol:L2_FixProxyAdmins --chain-id 2522 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 1000000 --evm-version "london" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/00_L2_Deploy2Tokens.s.sol:L2_Deploy2Tokens --chain-id 2522 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 1000000 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/01_L2_DeployImplsAndSSs.s.sol:L2_DeployImplsAndSSs --chain-id 2522 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 1000000 --evm-version "london" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/02_L2_UpgradeFeeVaults.s.sol:L2_UpgradeFeeVaults --chain-id 2522 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 1000000 --evm-version "london" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/03_L2_UpgradePredeploys.s.sol:L2_UpgradePredeploys --chain-id 2522 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 1000000 --evm-version "london" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/04_L2_Upgrade2Tokens.s.sol:L2_Upgrade2Tokens --chain-id 2522 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_TESTNET_RPC_URL --optimize --optimizer-runs 1000000 --evm-version "london" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/XX_L2_DeployTestSafe.s.sol:L2_DeployTestSafe --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/XY_L2_FixProxyAdmins.s.sol:L2_FixProxyAdmins --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/00_L2_Deploy2Tokens.s.sol:L2_Deploy2Tokens --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/01_L2_DeployImplsAndSSs.s.sol:L2_DeployImplsAndSSs --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/02_L2_UpgradeFeeVaults.s.sol:L2_UpgradeFeeVaults --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/03_L2_UpgradePredeploys.s.sol:L2_UpgradePredeploys --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/04_L2_Upgrade2Tokens.s.sol:L2_Upgrade2Tokens --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/00_L2_Deploy2Tokens.s.sol:L2_Deploy2Tokens --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$FRAXSCAN_API_URL --verifier-api-key $FRAXTAL_API_KEY
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/01_L2_DeployImplsAndSSs.s.sol:L2_DeployImplsAndSSs --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$FRAXSCAN_API_URL --verifier-api-key $FRAXTAL_API_KEY
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/02_L2_UpgradeFeeVaults.s.sol:L2_UpgradeFeeVaults --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$FRAXSCAN_API_URL --verifier-api-key $FRAXTAL_API_KEY
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/03_L2_UpgradePredeploys.s.sol:L2_UpgradePredeploys --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$FRAXSCAN_API_URL --verifier-api-key $FRAXTAL_API_KEY
source .env && forge script src/script/Fraxtal/North_Star_Hardfork/L2/04_L2_Upgrade2Tokens.s.sol:L2_Upgrade2Tokens --chain-id 252 --with-gas-price 1500000 --priority-gas-price 150000 --rpc-url $FRAXTAL_RPC_URL --optimize --optimizer-runs 999999 --evm-version "cancun" --broadcast --slow --verify --verifier=etherscan --retries=3 --verifier-url=$FRAXSCAN_API_URL --verifier-api-key $FRAXTAL_API_KEY
source .env && cast tx 0x1ee802e7a541c6c83f67365c8c79a29cec10cba0a608a5d9616475292a814128 --rpc-url $L2_DEVNET_RPC_URL
Try using forge verify-contract first
source .env && forge verify-contract --chain-id 252 --watch --num-of-optimizations 10000 --etherscan-api-key $FRAXTAL_API_KEY --constructor-args $(cast abi-encode "constructor(address)" "0x007FD070a7E1B0fA1364044a373Ac1339bAD89CF" true) 0xC540f05BF5a09336078634D65E46242DFBa55030 src/contracts/VestedFXS-and-Flox/VestedFXS/VestedFXSUtils.sol:VestedFXSUtils
source .env && forge verify-contract --chain-id 252 --watch --compiler-version "0.8.26" --evm-version "cancun" --num-of-optimizations 100000 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY --constructor-args 0x000000000000000000000000625e700125ff054f75e5348497cbfab1ee4b7a40 0xBFc4D34Db83553725eC6c768da71D2D9c1456B55 src/script/Miscellany/Proxy.sol:Proxy
source .env && forge verify-contract --chain-id 252 --watch --compiler-version "0.8.29" --evm-version "cancun" --num-of-optimizations 1000000 --rpc-url $FRAXTAL_RPC_URL --etherscan-api-key $FRAXTAL_API_KEY 0x9AF1c2aEcCD2c9f03F445F3397c112C24963ce26 src/contracts/Miscellany/frxUSD_Distribution/FrxUSDDistributor.sol:FrxUSDDistributor
CHECK THE PROXY OUT FOLDER TO SEE THE OPTS/RUNS/EVM/COMP STUFF BECAUSE SOMETIMES IT IS OLDER AND IS DIFFERENT FROM THE IMPLEMENTATION!!!
If this fails, try forge flatten
forge flatten --output src/flattened.sol src/contracts/VestedFXS-and-Flox/VestedFXS/VeFXSYieldDistributor.sol
sed -i '/SPDX-License-Identifier/d' ./src/flattened.sol && sed -i '/pragma solidity/d' ./src/flattened.sol && sed -i '1s/^/\/\/ SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.8.0;\n\n/' ./src/flattened.sol
- Take the contents of your new flattened.sol file and do the Etherscan verification manually
source .env && forge verify-contract --rpc-url $L1_DEVNET_RPC_URL --chain-id 1 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 50000 --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?' --constructor-args 0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed 0x09635F643e140090A9A8Dcd712eD6285858ceBef lib/optimism/packages/contracts-bedrock/src/universal/Proxy.sol:Proxy
source .env && forge verify-contract --rpc-url $L1_DEVNET_RPC_URL --chain-id 1 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 50000 --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?' --constructor-args 0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed 0x67d269191c92Caf3cD7723F116c85e6E9bf55933 lib/optimism/packages/contracts-bedrock/src/universal/Proxy.sol:Proxy
source .env && forge verify-contract --rpc-url $L1_DEVNET_RPC_URL --chain-id 1 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 50000 --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?' --constructor-args 0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed 0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690 lib/optimism/packages/contracts-bedrock/src/universal/Proxy.sol:Proxy
source .env && forge verify-contract --rpc-url $L1_DEVNET_RPC_URL --chain-id 1 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 50000 --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?' --constructor-args 0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed 0x68B1D87F95878fE05B998F19b66F4baba5De1aed lib/optimism/packages/contracts-bedrock/src/universal/ProxyAdmin.sol:ProxyAdmin
source .env && forge verify-contract --rpc-url $L1_DEVNET_RPC_URL --chain-id 1 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 50000 --verifier=blockscout --retries=3 --verifier-url='http://localhost:36103/api?' --constructor-args 0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed 0x68B1D87F95878fE05B998F19b66F4baba5De1aed lib/optimism/packages/contracts-bedrock/src/universal/ProxyAdmin.sol:ProxyAdmin
source .env && forge verify-contract --rpc-url $L2_DEVNET_RPC_URL --chain-id 252 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 999999 --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?' --constructor-args 0000000000000000000000004200000000000000000000000000000000000018 0x4200000000000000000000000000000000000015 lib/optimism/packages/contracts-bedrock/src/universal/Proxy.sol:Proxy
source .env && forge verify-contract --rpc-url $L2_DEVNET_RPC_URL --chain-id 252 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 999999 --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?' --constructor-args 0000000000000000000000004200000000000000000000000000000000000018 0xfc00000000000000000000000000000000000002 lib/optimism/packages/contracts-bedrock/src/universal/Proxy.sol:Proxy
source .env && forge verify-contract --rpc-url $L2_DEVNET_RPC_URL --chain-id 252 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 999999 --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?' --constructor-args 0000000000000000000000004200000000000000000000000000000000000018 0x4200000000000000000000000000000000000000 lib/optimism/packages/contracts-bedrock/src/universal/Proxy.sol:Proxy
source .env && forge verify-contract --rpc-url $L2_DEVNET_RPC_URL --chain-id 252 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 999999 --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?' --constructor-args 0000000000000000000000001853d02e360e1f9384fd8dd0ebfe671701300204 0xc0d3c0d3c0d3c0d3c0d3c0d3c0d3c0d3c0d30018 lib/optimism/packages/contracts-bedrock/src/universal/ProxyAdmin.sol:ProxyAdmin
source .env && forge verify-contract --rpc-url $L2_DEVNET_RPC_URL --chain-id 252 --watch --compiler-version "v0.8.23+commit.f704f362" --evm-version "london" --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?' --constructor-args 0000000000000000000000005a856F34BA62f32a68e98E9F78b26D62c6cB70fE 0xFCC0D3000000000000000000000000000000000A lib/optimism/packages/contracts-bedrock/src/universal/ProxyAdmin.sol:ProxyAdmin
source .env && forge verify-contract --rpc-url $L2_DEVNET_RPC_URL --chain-id 252 --watch --compiler-version "0.8.15+commit.e14f2714" --evm-version "london" --num-of-optimizations 999999 --verifier=blockscout --retries=3 --verifier-url='http://localhost:40006/api?' 0xfb1bffC9d739B8D520DaF37dF666da4C687191EA lib/optimism/packages/contracts-bedrock/lib/safe-contracts/contracts/GnosisSafeL2.sol:GnosisSafeL2
- https://fraxscan.com/proxycontractchecker?a=PROXY_ADDRESS_HERE
- TRY
source .env && forge verify-contract --chain-id 252 --watch --num-of-optimizations 100000 --evm-version "cancun" --etherscan-api-key $FRAXTAL_API_KEY --constructor-args $(cast abi-encode "constructor(address)" "0x625e700125FF054f75e5348497cBFab1ee4b7A40" true) 0x437E9F65cA234eCfed12149109587139d435AD35 src/script/VestedFXS-and-Flox/Proxy.sol:Proxy
- OR (2) but with
--show-standard-json-input
and paste that into the verifier - If you are still having problems, make sure the constructor args are padded properly, etc. Sometimes Etherscan guesses the wrong ones.
forge coverage --ir-minimum --report lcov && genhtml lcov.info -o report --branch-coverage --ignore-errors category
.- Go to /report and browse the html
- OPTIONAL:
forge coverage --report summary
(shows a coverage report in the terminal) - OPTIONAL: VS Code: install Coverage Gutters or a similar extension to see the coverage inside VSCode tabs
This repo uses the following tools:
- frax-standard-solidity for testing and scripting helpers
- forge fmt & prettier for code formatting
- lint-staged & husky for pre-commit formatting checks
- solhint for code quality and style hints
- foundry for compiling, testing, and deploying