This repository contains a sample project that you can use as the starting point for your Ethereum project.
It's also a great fit for learning the basics of Smart Contracts for development of fat protocols, and thin applications that use shared data on a distributed ledger.
This project is intended to be used with the
Decentralized Exchange Code Development video series, but you should be
able to follow it by yourself by reading the README and exploring its
contracts
, tests
, scripts
and frontend
directories.
The first things you need to do are cloning this repository and installing its dependencies:
git clone https://github.com/hackingbeauty/hardhat-boilerplate-deluxe
cd hardhat-boilerplate-deluxe
npm install
Once installed, let's run Hardhat's testing network:
npx hardhat node
Then, on a new terminal, go to the repository's root folder and run this to deploy your contract:
npx hardhat run scripts/deploy.js --network localhost
Finally, we can run the frontend with:
cd frontend
npm install
npm start
Open http://localhost:3000/ to see your decentralized application. You will
need to have Metamask installed and listening to
localhost 8545
.
You can find detailed instructions on using this repository and many tips in its documentation.
- Writing and compiling contracts
- Setting up the environment
- Testing Contracts
- Setting up Metamask
- Hardhat's full documentation
For a complete introduction to Hardhat, refer to this guide.
This repository uses our recommended hardhat setup, by using our @nomicfoundation/hardhat-toolbox
. When you use this plugin, you'll be able to:
- Deploy and interact with your contracts using ethers.js and the
hardhat-ethers
plugin. - Test your contracts with Mocha, Chai and our own Hardhat Chai Matchers plugin.
- Interact with Hardhat Network with our Hardhat Network Helpers.
- Verify the source code of your contracts with the hardhat-etherscan plugin.
- Get metrics on the gas used by your contracts with the hardhat-gas-reporter plugin.
- Measure your tests coverage with solidity-coverage.
This project also includes a sample frontend/Dapp, which uses Create React App.
Invalid nonce
errors: if you are seeing this error on thenpx hardhat node
console, try resetting your Metamask account. This will reset the account's transaction history and also the nonce. Open Metamask, click on your account followed bySettings > Advanced > Reset Account
.
Hardhat for Visual Studio Code is the official Hardhat extension that adds advanced support for Solidity to VSCode. If you use Visual Studio Code, give it a try!
If you're new to developing DeFi protocols and decentralized applications on Ethereum, consider developing a decentralized exchange powered by Automated Market Maker technology. It's a great way to bootstrap your knowledge of how these software systems work.
To learn how to do this, check out the Decentralized Exchange Code Development 5-part series at "Web3 Blockchain Developer" and get step-by-step guidance.
There are two run-time targets you have to learn how to develop for if you want to implement decentralized business models on Ethereum. The first run-time target is the EVM (Ethereum Virtual Machine) which is the general purpose computer that processes Smart Contracts.
The second run-time target is the Web which allows you to connect a UI/UX to your DeFi protocols or decentralized applications.
If you need help with this project, or with Hardhat in general, please read this guide to learn where and how to get it.
For the latest news about Hardhat, follow us on Twitter, and don't forget to star our GitHub repository!
Happy building!