Deployment with Hardhat
Overview
Hardhat is a development tool for Ethereum, aiding in smart contract creation with features for compiling, testing, debugging, and deployment of Solidity code.
Clone the tutorial at https://github.com/MANTRA-Chain/omstead-hardhat-deployment-tutorial to get started.
Using Hardhat Ignition
In your Hardhat project, add Remote Network to
hardhat.config.js
for MANTRA Omstead (COSMOS+EVM)
require("@nomicfoundation/hardhat-toolbox");
const { vars } = require("hardhat/config");
const TEST_PRIVATE_KEY = vars.get("TEST_PRIVATE_KEY");
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
solidity: "0.8.28",
networks: {
omstead: {
url: `https://evm.omstead.io/`,
chainId: 7888,
accounts: [TEST_PRIVATE_KEY]
},
}
};
Example on how to configure variables for user-specific values in Hardhat:
npx hardhat vars set TEST_PRIVATE_KEY
✔ Enter value: ********************************
Set Up Ignition Modules:
(We have created a sample module for you in the tutorial repository)
Create a directory named
ignition
in the project's root directory.Inside the
ignition
directory, create another directory namedmodules
.Within the
modules
directory, create a<YourFile>.js
file.
Example directory structure:
./ignition/modules/<YourFile>.js
Deploy:
To tell Hardhat to connect to a specific Ethereum network, you can use the
--network
parameter when running any task, like this:
npx hardhat ignition deploy ./ignition/modules/Token.js --network omstead
Example result from running the above command
$ npx hardhat ignition deploy ./ignition/modules/USDC.js --network omstead
✔ Confirm deploy to network omstead (7888)? … yes
Hardhat Ignition 🚀
Resuming existing deployment from ./ignition/deployments/chain-7888
Deploying [ TokenModule ]
Warning - previously executed futures are not in the module:
- TokenModule#Token
Batch #1
Executed TokenModule#USDC
[ TokenModule ] successfully deployed 🚀
Deployed Addresses
TokenModule#Token - <0xHash of the deployed contract>
Last updated