Deployment guide
Settings
First install all dependencies and set all the environment variables needed in a .env file
Deployment and upgrades management
For this project it was used the hardhat-deploy plugin to manage everything related to deployments, upgrades, tasks, interaction scripts and verify process, this plugin has support for EIP 2535 Diamond standard, and this allow some built in features that helps with the development process.
Commands
To deploy run the next command
yarn hardhat deploy --network <network_to_deploy> --tags takaturn_deploy
To upgrade run the next one
yarn hardhat deploy --network <network_to_deploy> --tags takaturn_upgrade
That will run the correct script
Managing upgrades
When the first deploy is made, a folder with the corresponding network info is created inside the deployment folder. It is important to not delete this folder, as long as we can find here the json file for the Diamond proxy, upgrades will be made correctly. If the file is deleted, a new Diamond will be deployed every time.
Verification
The deploy scripts are set to verify the Diamond proxy and each Facet implementation, but it can be the case when the verification fails due to various reasons (errors on the arbiscan API, lack of block verification after deployment, etc. if this happens it can be solved by two different ways. You can either run again the deploy command (this will reuse the same address and try verification again) or run the next command
yarn hardhat sourcify --network <network_deployed> --contract-name <contract_to_verify>
Last updated