Deploy Smart Contract on Ethereum Mainnet
May 8, 2024
deploy.ts (typescript):
import { ethers } from "hardhat";
async function main() {
const saasWeb3Pay = await ethers.deployContract("SaasWeb3Pay");
await saasWeb3Pay.waitForDeployment();
console.log(`Deployed to ${saasWeb3Pay.target}`)
}
main().catch((error) => {
console.error(error);
process.exitCode = 1
})
Env:
SECRET=
INFURA_URL=
API_KEY=
NETWORK=mainnet
Config:
import dotenv from "dotenv";
dotenv.config();
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
const config: HardhatUserConfig = {
solidity: "0.8.24",
networks: {
mainnet: {
url: process.env.INFURA_URL,
accounts: {
mnemonic: process.env.SECRET
}
},
sepolia: {
url: process.env.INFURA_URL,
chainId: 11155111,
accounts: {
mnemonic: process.env.SECRET
}
},
local: {
chainId: 31337,
url: "http://127.0.0.1:8545",
accounts:{
mnemonic: "test test test test test test test test test test test junk"
}
}
},
etherscan: {
apiKey: process.env.API_KEY
}
};
export default config;
The wallet should have ETH.
npx hardhat run scripts/deploy.ts --network mainnet