Files
tycho-execution/foundry/scripts/README.md
TAMARA LIPOWSKI 7ca9120b7b feat: support base deployment
gas limit had to be set when setting executors on base: kept getting UNPREDICTABLE_GAS_LIMIT error. It should definitely not cost more than 100000 gas to set limit... but this may be a problem on other chains in the future.
2025-02-26 10:59:25 -05:00

1.7 KiB

How to deploy

  • Install dependencies npm install
  • cd foundry

Deploy on a Tenderly fork

  1. Make a new fork in tenderly dashboard for the chain that you wish to deploy on.
  2. Set the following environment variables:
export RPC_URL=<fork-rpc-from-tenderly>
export DEPLOY_WALLET=<wallet-address>
export PRIVATE_KEY=<private-key>
  1. Fund wallet: npx hardhat run scripts/fund-wallet-tenderly-fork.js --network tenderly

Deploy on Ethereum Mainnet or Base

  1. Set the following environment variables:
export RPC_URL=<chain-rpc-url>
export DEPLOY_WALLET=<wallet-address>
export PRIVATE_KEY=<private-key>

Make sure to run unset HISTFILE in your terminal before setting the private key. This will prevent the private key from being stored in the shell history.

Deploy Tycho Router

For each of the following, you must select one of tenderly_mainnet, tenderly_base, mainnet, or base as the network.

  1. Deploy router: npx hardhat run scripts/deploy-router.js --network NETWORK
  2. Define the accounts to grant roles to in scripts/roles.json
  3. Export the router address to the environment variable export ROUTER=<router-address>
  4. Grant roles: npx hardhat run scripts/set-roles.js --network NETWORK
  5. Set executors: npx hardhat run scripts/set-executors.js --network NETWORK. Make sure you change the DEPLOY_WALLET to the executor deployer wallet. If you need to deploy executors, follow the instructions below.

Deploy executors

  1. In scripts/deploy-executors.js define the executors to be deployed
  2. Deploy executors: npx hardhat run scripts/deploy-executors.js --network NETWORK
  3. Fill in the executor addresses in config/executors.json