ERC721トークンを使って、OpenSeaで売買を行うビジネスモデルを検証するために、OpenZeppelinの実装を再利用しようしています。
前回同様のことをおこなったときから、時間が経過していたので下記を参照してスマートコントラクトを実装します。
https://docs.openzeppelin.com/contracts/3.x/erc721
作業ディレクトリで下記の操作を行います。前提としてnode.jsの環境やtruffleの環境が構築されているものとしてます。
$ mkdir ERC721
$ cd ER721/
$ truffle init
$ npm install web3
$ npm install @openzeppelin/contracts
$ npm install
雛形として上記サイトを参照に以下のSmartContractを実装しました。実装といってもほとんどそのままですが、ここから実装を開始します。まずは環境を確認するために以下をコンパイルしてみます。
pragma solidity >=0.6.0 <0.8.0;
import "../node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "../node_modules/@openzeppelin/contracts/utils/Counters.sol";
import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol";
/**
* @title Treasure
* Treasure - a contract for my non-fungible creatures.
*/
contract GameItem is ERC721 {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;
constructor() public ERC721("IoTItem", "ITM") {}
}
コンパイルはで無事成功。
$ truffle compile
Compiling your contracts...
===========================
> Compiling ./contracts/Treasure.sol
> Artifacts written to /home/hajime/git/BlockchainDevND/SelfStudy/ER721/build/contracts
> Compiled successfully using:
- solc: 0.6.2+commit.bacdbe57.Emscripten.clang
一通りのインタフェースは実装されているようなので、開発者は追加機能に集中して開発ができそうです。
コメント