dApps 開発者ギルド勉強会 #1 に参加して
ローカル環境で dApps をデプロイして動かすことろまでができたので記録を残しておく.
環境構築と Truffle を使って Ganache のローカルチェーンにデプロイするところまでは
オオキマキさん (@ookimaki_JP) のブログの通りにすすめていけば問題なくできると思う. (ありがたい!)
環境構築
Ethereum dApps Quickstart
Ethereum dApps Quickstart の動作確認
MetaMask は file://~ から始まる URL では動作しないため, live-server を使って確認する.
$ npm install -g live-server $ cd src/ $ live-server
ブラウザが自動で立ち上がり http://127.0.0.1:8080
が開く.
テキストエリアに文字を入れて, set をクリックで MetaMask が表示されるのでそのまま submit
alert で Txhash: 0xxxxxx
と表示されれば成功.
Ganache の Transactions タブでも同じアドレスが確認できるはず.
発生したエラーと対策
npm install でエラー
async awaitCurrentBlock () {
^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
対策
7.6系以降の Node.js を使用する.
安定版の8.x系を使っておけば安心.
truffle migrate でエラー
$ truffle migrate Using network 'development'. Error: Attempting to run transaction which calls a contract function, but recipient address 0xxxxx is not a contract address
対策
$ truffle migrate --reset
Provided address "0xxxxx" is invalid (ブラウザのconsole)
対策
src/index.html
の contractAddress
が間違っているので, truffle migrate した時のコントラクトアドレスを再度確認して正しいものを指定する.
contract.methods.set is not a function (ブラウザのconsole)
対策
src/js/contract_abi.js
の contractABI
が間違っているので, build/contracts/SimpleStore.json
の abi
を正しくコピーする.
MetaMask - RPC Error: Error: Error: [ethjs-rpc] rpc error with payload (ブラウザのconsole)
MetaMask - RPC Error: Error: Error: [ethjs-rpc] rpc error with payload
対策
src/index.html
の contractAddress
が間違っているので, truffle migrate した時のコントラクトアドレスを再度確認して正しいものを指定する.
所感
- ひとりでやったら1週間ぐらいかかりそうな内容が2時間でできた!
- わからないことは気軽に聞くことができたり, 一緒に考えながらやっていけたり dApps 開発者ギルドに感謝!