blockchain:openzeppelin_で_erc20_トークンの作成
文書の過去の版を表示しています。
OpenZeppelin で ERC20 トークンの作成
ほぼ OpenZeppelin オフィシャルのドキュメント通りに ERC20 トークンを実装します。つまり、オリジナルのコインを発行します。
前提
Truffle と npm をインストールしておいてください。
プロジェクト作成
> 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
