This example is inpired by the Getting Started section of Hardhat Documentation.
Prerequisites
Let's create a basic sample project
mkdir hardhat && cd hardhat
yarn add hardhat
yarn hardhat
888 888 888 888 888
888 888 888 888 888
888 888 888 888 888
8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888
888 888 "88b 888P" d88" 888 888 "88b "88b 888
888 888 .d888888 888 888 888 888 888 .d888888 888
888 888 888 888 888 Y88b 888 888 888 888 888 Y88b.
888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888
Welcome to Hardhat v2.6.8
✔ What do you want to do? · Create a basic sample project
✔ Hardhat project root: · /home/.../hardhat
✔ Do you want to add a .gitignore? (Y/n) · y
✔ Do you want to install this sample project's dependencies with yarn (@nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers ethers)? (Y/n) · y
Add the RPC nodes
Add the networks section to the hardhat.config.js
file inside the module.exports
like so:
module.exports = {
solidity: "0.8.4",
networks: {
development: {
url: 'http://localhost:8545',
chainId: 595,
gasPrice: 429496729610000,
// Development built-in default deployment account
accounts: ["0xa872f6cbd25a0e04a08b1e21098017a9e6194d101d75e13111f71410c59cd57f"]
}
}
}
To compile it, simply run:
yarn hardhat compile
Compiling 2 files with 0.8.4
Compilation finished successfully
You can run your tests with:
yarn hardhat test --network development
Greeter
✓ Should return the new greeting once it's changed (554ms)
1 passing (555ms)
Next, to deploy the contract we will use a Hardhat script:
yarn hardhat run scripts/sample-script.js --network development
Greeter deployed to: 0x3d3593927228553b349767ABa68d4fb1514678CB
Going beyond and reading the on-chain data
Using the hardhat console, you can interact with your deployed contracts.
yarn hardhat console --network development
Welcome to Node.js v14.18.1.
Type ".help" for more information.
> const Greeter = await ethers.getContractFactory("Greeter");
undefined
> const greeter = await Greeter.attach('0x3d3593927228553b349767ABa68d4fb1514678CB')
undefined
> await greeter.greet()
'Hello, Hardhat!'