This project demonstrates changing underlying smart contract codes but keeping the same contract address. This is how the Tornado Cash Governance hack happened.
Try running some of the following tasks:
npx hardhat help
npx hardhat test
REPORT_GAS=true npx hardhat test
npx hardhat node
npx hardhat run scripts/deploy.js