skka3134

skka3134

email
telegram

ERC20

  1. 新しいプロジェクトを開始する
npm init
  1. hardhat をインストールする
npm install hardhat
  1. hardhat を初期化する
npx hardhat/npx hardhat init
  1. 依存関係をインストールする
npm install @openzeppelin/contracts
npm install @openzeppelin/contracts-upgradeable
npm install @chainlink/contracts
npm install dotenv


npm install @openzeppelin/hardhat-upgrades 
npm install @nomiclabs/hardhat-ethers
npm install @openzeppelin/hardhat-defender
npm install @nomiclabs/hardhat-etherscan 
npm install chai 
npm install @openzeppelin/test-helpers 
  1. hardhat.config.js を変更する
require("@nomicfoundation/hardhat-toolbox");
require('dotenv').config()
// require('@nomiclabs/hardhat-ethers');
// require('@openzeppelin/hardhat-upgrades');
// require("@openzeppelin/hardhat-defender");
// require("@nomiclabs/hardhat-etherscan");
module.exports = {
  solidity: {
    version: '0.8.19',
    settings: {
      optimizer: {
        enabled: true,
        runs: 200,
      },
    },
  },
  networks: {
    sepolia: {
      url: `https://eth-sepolia.g.alchemy.com/v2/${process.env.ALCHEMY_API_KEY}`,
      accounts: [process.env.MNEMONIC]
    },
  },
  // etherscan: {
  //   apiKey: process.env.etherscanKey,
  // },
  // defender: {
  //   apiKey: process.env.DEFENDER_TEAM_API_KEY,
  //   apiSecret: process.env.DEFENDER_TEAM_API_SECRET_KEY,
  // },
};
  1. .env ファイルを作成して保存する
MNEMONIC=""
SEPOLIA_PRIVATE_KEY=""
SEPOLIA_PRIVATE_KEY=""
SEPOLIA_PRIVATE_KEY=""
ALCHEMY_API_KEY=""
  1. Wizard を使用して契約を開発する https://docs.openzeppelin.com/contracts/4.x/wizard
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

/// @custom:security-contact [email protected]
contract DragonToken is ERC20, ERC20Burnable, Ownable {
    constructor() ERC20("DragonToken", "DTK") {
        _mint(msg.sender, 10000 * 10 ** decimals());
    }

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}
  1. コンパイルする
npx hardhat compile 
  1. デプロイスクリプト
async function main() {
  const [deployer] = await ethers.getSigners();
  console.log("Deploying contracts with the account:", deployer.address);
  const DragonToken = await ethers.deployContract("DragonToken");
  console.log("Token address:", await DragonToken.getAddress());
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });
  1. hardhat のローカルネットワークを起動する
npx hardhat node
  1. hardhat のローカルネットワークにデプロイする
npx hardhat run ./scripts/deploy.js
npx hardhat run ./scripts/deploy.js --network localhost 
  1. sepolia ネットワークにデプロイする
npx hardhat run ./scripts/deploy.js --network sepolia 

0xb02a44bB533DA6BeF058c66Dc5d0d7F2ca38C50a

  1. remix で対話する https://remix.ethereum.org/
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。