catapulta
v0.4.7
Published
Catapulta CLI deployment tool for Foundry and Hardhat, check https://catapulta.sh to know more.
Downloads
210
Readme
Catapulta CLI
The Catapulta CLI is a multi-chain deployment tool for Foundry and Hardhat, which allows you to deploy smart contracts, automatically verify and generate deployment reports in +10 networks, without the need to maintain RPC urls or block explorer API keys in your Foundry/Hardhat config.
Catapulta is a smart contracts deployment platform for teams, to ensure the best Chain Ops practices via automation to keep your deployments organized.
Check below for quick documentations for:
- Foundry
- Hardhat Deploy
Requirements
For using Catapulta, you need:
- Node.js 18
- Sign up with Github at Catapulta.sh, to obtain a free API key.
- Paste your
CATAPULTA_API_KEY
in your.env
file in your repository, or in your.bashrc
or your.zshrc
file.
Install
You can install catapulta
CLI globally via NPM:
npm i -g catapulta
Can also be installed locally in your Foundry or Hardhat project, if you use Node.js
npm i --save-dev catapulta
# Execute with npx at your package.json scripts
npx catapulta -v
Foundry: Getting started
To be able to deploy your Foundry scripts using Catapulta, you need to specify the Foundry Script path and the network to perform the deployment:
npx catapulta script scripts/Deploy.s.sol --network sepolia
Multi-chain deployment
You can also perform multi-chain deployments in a single run, adding a list of networks separated by comma at the --network
param.
npx catapulta script scripts/Deploy.s.sol --networks sepolia,avalancheFuji,maticMumbai
Simulations
If you only want to perform a fork simulation of your script, add --simulate
flag.
npx catapulta script scripts/Deploy.s.sol --network sepolia --simulate
You can also pass the --simulate-block-number
param to set the fork block height:
npx catapulta script scripts/Deploy.s.sol --network sepolia --simulate
Verbose or debug mode
To view the deployment traces, add -vv
or -vvvv
verbose flag in the catapulta
command, in your simulation or broadcast deployment.
npx catapulta script scripts/Deploy.s.sol --network sepolia --simulate -vvvv
npx catapulta script scripts/Deploy.s.sol --network sepolia -vvvv
Keep in mind that verbose mode removes the concurrency mode, making multi-chain deployments slower.
Pass extra params to forge script
You can pass any extra forge script
params at the end of the command, like --with-gas-price
.
npx catapulta script scripts/Ghost.s.sol --network sepolia --with-gas-price 10000000000
Help
If you want to see full documentation, you can run:
npx catapulta --help
To remove the need to pass --api-key
in every command, add CATAPULTA_API_KEY
environment variable in your .env
file.
Hardhat: Getting Started
If you use Hardhat Deploy, you may need to install and import the Catapulta plugin in your hardhat.config.ts file.
npm i --save-dev catapulta
Them proceed to import the Catapulta plugin in your hardhat.config.ts file:
// hardhat.config.ts
// Include the Catapulta Hardhat plugin at the top of your config
import 'catapulta/hardhat';
Run your Hardhat deploy scripts using Catapulta CLI. You can pass any extra parameter needed for hardhat deploy
.
npx catapulta deploy --network sepolia --api-key <your-api-key>