# ERC721トークン発行のための手順書 ### 1.Truffleをインストールする。 > 事前準備 > ・`$ npm -–version`コマンドを実行し、npmがインストールされているか確認する。 > (Node.jsをインストールすると同時にnpmもインストールされます。) > ・command not foundの場合、`$brew install nodebrew`コマンドでインストールを行う。 > 1.`$ npm install -g truffle`コマンドを実行しTruffleをインストールする。 2.`$ truffle version`コマンドを実行し、バージョンが表示されればインストールは完了。 ### 2.Ganacheのインストール 1.[こちらの公式サイト](https://www.trufflesuite.com/ganache)より、Ganacheをインストールする。 ### 3.Truffleの初期化 1.適当なフォルダを作成し、そこでTruffleの初期化を`$ truffle init`コマンドにて行う。コマンドを実行することで下記の構成が自動生成される。 ``` │ truffle-config.js │ ├─contracts │ Migrations.sol │ ├─migrations │ 1_initial_migration.js │ └─test *各フォルダ内のファイル構成 * Truffle-cofig.js→truffleのプロジェクト設定ファイル contracts→solidityのコード migrations→デプロイ用のコード test→テスト用のコード ``` ### 4.OpenZeppelinのインストール 1.適当なフォルダ内で`$ npm install -E openzeppelin-solidity`コマンドより、OpenZeppelinをインストールする。 ### 5.Node.jsの初期化 1.`$ npm init`コマンドを用いて、Node.jsを初期化する。 ### 6.GanacheとTruffleを接続する 1.インストールしたGanacheアプリケーションを開き、QUICKSTARTを行う。 2.`truffle-config.js`内の![](https://i.imgur.com/FAOL4UK.png) 上部写真のようにコメントアウトを外し、host,port部分をGanacheアプリのRPC SERVERと同じ値にする。 > *注意点 > インストールしたOpenZeppelinの初めの行の`pragma solidity ~;`部分のバージョンと、`truffle-config.js`内のバージョンを揃える。下記画像部分。![](https://i.imgur.com/bM9xD05.png) 3.Ganacheアプリの右上にある歯車マークをクリックし、WORKSPACEタブのTRUFFLE PROJECTSに`truffle-config.js`をADDする。 ![](https://i.imgur.com/TUWmW7t.png) ### 7.ERC721コンストラクトを継承したコンストラクトを作成 1.contractsフォルダ内に、任意の名前の.solファイルを作成する。内容は以下(例としてmyToken.solファイルをここでは作成する。) ![](https://i.imgur.com/cPpvBT7.png) > *注意点 > 7行目の`contract myToken`部分の、コントラクト名はファイル名と同一にする。(違った名前にするとうまくデプロイが行えない。) ### 8.デプロイするためのJSファイルを作成する 1.migrationsフォルダ内に`2_deploy_constracts.js`ファイルを作成する。内容は以下 ![](https://i.imgur.com/X4iHBI7.jpg) > *注意点 > 1行目の`("myToken")`部分は7、で定義したコントラクト名と同一にする。(違った名前にするとうまくデプロイが行えない。) ### 9.コンパイルを行う 1.ターミナルにて`$ truffle cpmpile`コマンドを実行し、コンパイルを行う。(コンパイルを行うとローカルのbuildフォルダにJSONファイルが自動生成される) ### 10.デプロイを行う 1.ターミナルにて`$ truffle migration`コマンドを実行し、デプロイを行う。 以下画像のような出力が行われれば成功。 ![](https://i.imgur.com/MQCFmjM.png)