OpenZeppelinのERC721実装のアップデート

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

一通りのインタフェースは実装されているようなので、開発者は追加機能に集中して開発ができそうです。

コメント

タイトルとURLをコピーしました