Using Hardhat
Last updated
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract TEP721NFT is ERC721, Ownable {
uint256 private _nextTokenId;
constructor()
ERC721("TEP721NFT", "TPFT")
Ownable(msg.sender)
{}
function safeMint(address to) public onlyOwner {
uint256 tokenId = _nextTokenId++;
_safeMint(to, tokenId);
}
}async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying the contracts with the account:",await deployer.getAddress());
console.log("Account balance:", (await deployer.getBalance()).toString());
const TEP721NFT = await ethers.getContractFactory("TEP721NFT");
const token = await TEP721NFT.deploy();
await token.deployed({ gasLimit: 6000000 });
console.log("TEP721NFT address:", token.address);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});npm install --save-dev @nomiclabs/hardhat-ethers@^2.2.3 @nomiclabs/hardhat-waffle@^2.0.6 @openzeppelin/contracts@^5.0.2 @uniswap/v3-periphery@^1.0.1 bignumber.js@^9.1.2 dotenv@^16.4.5 ethereum-waffle@^4.0.10 [email protected] hardhat@^2.22.4// In .env file
YOUR_PRIVATE_KEY = "YOUR_PRIVATE_KEY"require("@nomiclabs/hardhat-waffle");
/** @type import('hardhat/config').HardhatUserConfig */
const privateKey = process.env.YOUR_PRIVATE_KEY;;
module.exports = {
solidity: {
version: "0.8.20",
settings: {
optimizer:{
enabled:true,
runs:1000,
details:{yul:false},
}
}
},
networks: {
taral: {
chainId: 4442,
url: "https://devnet-rpc1.tanledger.com",
accounts: [privateKey],
},
},
};npx hardhat run scripts/deploy.js --network tan