Standardized project structure for Solidity projects following the Sky Protocol's standards.
- Standard directory structure
- Default
.gitignore - Default
.editorconfigto avoid conflicting editor settings (see editorconfig) - Includes common dependencies (see forge-std and dss-test)
- Includes common script niceties from dss-test
- Includes basic formal verification rules and config for Certora
Choose sky-solidity-bootstrap template when creating a new repository through the GitHub UI.
This template might have stale dependencies. To update them, run:
forge update forge-std
forge update dss-testSimulate the deployment of a Counter contract on Mainnet, using the CounterDeployScript script.
- Copy
script/input/1/template-counter-deploy.jsontoscript/input/1/counter-deploy.json. - Change the
initialvalue incounter-deploy.json. - Run the deployment script:
FOUNDRY_EXPORTS_OVERWRITE_LATEST=true FOUNDRY_ROOT_CHAINID=1 FOUNDRY_SCRIPT_CONFIG='counter-deploy' \
forge script CounterDeployScript --fork-url $ETH_RPC_URL --sender $ETH_FROM -vvvAlternatively, pass the script config as text:
FOUNDRY_EXPORTS_OVERWRITE_LATEST=true FOUNDRY_ROOT_CHAINID=1 FOUNDRY_SCRIPT_CONFIG_TEXT='{"initial": 42}' \
forge script CounterDeployScript --fork-url $ETH_RPC_URL --sender $ETH_FROM -vvvAdd --broadcast to broadcast the transactions.
Tip
Notice that .env is supported. Check .env.example for more details.