What is hardhat
Hardhat is a development environment for Ethereum software. It consists of different components for editing, compiling, debugging and deploying your smart contracts and dApps, all of which work together to create a complete development environment.
How to use hardhat on Fuse and Spark
Following the instructions here, run npx hardhat
to create a hardhat project.
Then in hardhat.config.js add Fuse and Spark to the network section:
hardhat.config.js
module.exports = {
// ...
networks: {
fuse: {
url: 'https://rpc.fuse.io/',
accounts: {
// put dev menomonic or PK here
},
},
spark: {
url: 'https://rpc.fusespark.io/',
accounts: {
// put dev menomonic or PK here
},
},
},
// ...
}
How to verify contracts
To verify contracts with hardhat the hardhat-etherscan is used. Yes it’s sound counterintuitive and wrong, but the hardhat-etherscan
plugin verifies contracts in the blockscout explorer.
Add the following property to hardhat.config.js
hardhat.config.js
etherscan: {
apiKey: {
fuse: "YOUR_KEY_IF_YOU_HAVE_ONE",
spark: "YOUR_KEY_IF_YOU_HAVE_ONE"
},
customChains: [
{
network: "fuse",
chainId: 122,
urls: {
apiURL: "https://explorer.fuse.io/api",
browserURL: "https://explorer.fuse.io"
}
},
{
network: "spark",
chainId: 123,
urls: {
apiURL: "https://explorer.fusespark.io/api",
browserURL: "https://explorer.fusespark.io"
}
}
]
}
Now to verify the contract on Fuse:
npx hardhat verify --network fuse DEPLOYED_CONTRACT_ADDRESS "Constructor argument 1"