サイトアイコン Amelt.net

Ethereum:truffleのreact-boxでDappを体験してみた

This post is also available in: English-US (英語)

truffleのreact-boxを使うと、お手軽にイーサリアムのスマートコントラクトを使ったブロックチェーンだぜ的なアプリ開発を、reactのUIで体験できるらしいので、やってみたら、落とし穴がいくつかありましたので、メモ代わりに書いています。

GitHubの truffle-box/react-box のチュートリアルをベースに進めましたが、いくつか修正しないとアプリが動きませんでした。
環境はWindows7 64bitです。

truffleをインストールするため以下のコマンドを入力。

npm install -g truffle

プロジェクトルートフォルダにて以下のコマンドを入力。
react-boxのデータが展開されます。

truffle unbox react

同じくプロジェクトルートフォルダにて以下のコマンドを入力。
compile,migrateはtruffle developを打った後にコマンド入力待ちになるので、その状態で入力してます。
Windowsでは、コマンドプロンプトでなく、Git Bashなどを利用する事をお勧めします。

truffle develop
compile
migrate

(チュートリアルにはないので手順が正しいかは知りません)
truffle developを打ったコマンドプロンプト(もしくはGit Bashなど)とは別のコマンドプロンプトを立ち上げて以下のコマンドを入力。
bignumber.js がないですよってエラーが出た場合の対処方法です。

cd client
npm install --save bignumber.js

(チュートリアルにはないので手順が正しいかは知りません)
truffle developを走らせると、buildフォルダ以下にcontractsフォルダができてますので、そのcontractsフォルダをclient/srcフォルダ以下にコピーします。
以下のようなエラーが出た場合の対処方法です。

Module not found: Can't resolve './contracts/SimpleStorage.json' in '....../client/src/App.js'

最後に以下のコマンドを打つと、ブラウザが立ち上がり、App.jsの内容が走ります。

cd client
npm run start

ブラウザで「App.jsのこの行数を修正したら値変わるよ」と書いてますが、行数が違います。
以下のコード部分の 5 を好きな値に変えてください。

// Stores a given value, 5 by default.
await contract.set(5, { from: accounts[0] });