Create an ERC-20 token and Verify
Deploy a smart contract yayınladığınız yerden devam edebilirsiniz.
mkdir token && cd tokennpm projesini başlatıyoruz.
npm init -ynpm install --save-dev hardhat ts-node typescript @nomicfoundation/hardhat-toolbox ethers@^6.1.0 dotenv @nomicfoundation/hardhat-verify hardhat ts-node typescript @nomicfoundation/hardhat-toolbox ethers @openzeppelin/contracts dotenvnpx hardhatİstendiğinde, "Create a TypeScript project" seçeneğini seçin ve .gitignore ve bağımlılıklar için "Yes" yanıtını verin.
cd contracts
rm Lock.sol
nano Token.solAşağıdaki Token. Sol içindeki "My Token" ve "TOK" simgelerini kendinize göre değiştirebilirisiniz. Size kalmış.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract Token is ERC20 {
constructor(uint256 initialSupply) ERC20("My Token", "TOK") {
_mint(msg.sender, initialSupply);
}
}Editörden çıkmak ve kaydetmek için Ctrl + X, ardından Y ve Enter tuşlarına basın.
cd ..
nano hardhat.config.tsAşağıdaki hiçbir bilgiyi değiştirmeden aynen ekliyoruz.
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
import "@nomicfoundation/hardhat-verify";
import * as dotenv from "dotenv";
dotenv.config();
const config: HardhatUserConfig = {
etherscan: {
apiKey: {
ernscan: "ernscan", // API anahtarı gerekmiyor, sadece bir placeholder
},
customChains: [
{
network: "ernscan",
chainId: 233,
urls: {
apiURL: "https://api.routescan.io/v2/network/testnet/evm/233/etherscan",
browserURL: "https://testnet.ernscan.io"
}
}
]
},
networks: {
"ethernity-testnet": {
url: 'https://testnet.ethernitychain.io',
chainId: 233,
accounts: [process.env.PRIVATE_KEY!]
}
},
solidity: {
version: "0.8.20",
settings: {
optimizer: {
enabled: true,
runs: 200
}
}
}
};
export default config;şimdi .env dosyası oluşturuyoruz.
nano .envBu dosya içine metamask private key'imizi ekliyoruz.
PRIVATE_KEY=your_private_key_hereToken'imizi derleyelim.
npx hardhat compileToken'imizi dağıtımı ve mint işlemini yapalım.
mkdir scripts
nano scripts/deploy.tsimport { ethers } from "hardhat";
async function main() {
const initialSupply = ethers.parseUnits("1000000", 18); // 1,000,000 TOK
const Token = await ethers.getContractFactory("Token");
const token = await Token.deploy(initialSupply);
await token.waitForDeployment();
console.log("Token deployed to:", await token.getAddress());
}
main()
.then(() => process.exit(0))
.catch(error => {
console.error(error);
process.exit(1);
});npx hardhat run scripts/deploy.ts --network ethernity-testnetŞimdi de tokenimizi verify yapıyoruz. Bunun için bir üstteki komutta size verilen kontrat adresini yazmanız yeterlidir.
npx hardhat verify --network ethernity-testnet <deployed_contract_address> 1000000000000000000000000https://testnet.ernscan.io/ adresten gidip hem tokeninizi hem de Verify olup olmadığını kontrol edebilirsiniz.
Last updated