ユーザ用ツール

サイト用ツール


blockchain:openzeppelin_で_erc20_トークンの作成

文書の過去の版を表示しています。


OpenZeppelin で ERC20 トークンの作成

ほぼ OpenZeppelin オフィシャルのドキュメント通りに ERC20 トークンを実装します。つまり、オリジナルのコインを発行します。

前提

Truffle と npm をインストールしておいてください。

(参考) Truffleを使ったスマートコントラクト開発

プロジェクト作成

> mkdir coin_project
> cd coin_project
nft_project> truffle init

Truffleを使ったスマートコントラクト開発 を参考に truffle-config.js の設定をしてください。(どの ethereum ブロックチェーンに接続するか設定する必要があります。)

OpenZeppelin のインストール

npm を使用して OpenZeppelin をインストールします。



NFTの実装


// contracts/GameItem.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
import "../node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "../node_modules/@openzeppelin/contracts/utils/Counters.sol";
 
contract GameItem is ERC721URIStorage {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;
 
    constructor() ERC722("GameItem", "ITM") {}
 
    function awardItem(address player, string memory tokenURI)
        public
        returns (uint256)
    {
        uint256 newItemId = _tokenIds.current();
        _mint(player, newItemId);
        _setTokenURI(newItemId, tokenURI);
 
        _tokenIds.increment();
        return newItemId;
    }
}

マイグレーション




デプロイ



実行(Mint)

今回作成したスマートコントラクトの awardItem を実行すると、新しい NFT が生成されます。 新たな NFT を生成することを Mint と言います。実際 awardItem のソースコードでは「_mint(player, newItemId);」と _mint メソッドを呼び出しています。 Mint は英語の「Minting 鋳造(ちゅうぞう)」から来ています。(例: minting authority 造幣局)



トランザクションログから Mint した NFT の TOKENID を取得します。 (GameItem スマートコントラクトは内部的に自動インクリメントする TOKENID を生成しています。これが主キーの役割を果たしています。)



Mint した NFT の所有者と NFT に保存されている tokenURI を確認します。



blockchain/openzeppelin_で_erc20_トークンの作成.1651975801.txt.gz · 最終更新: by dot