「SolidityとEthereumによる実践スマートコントラクト開発―Truffle Suiteを用いた開発の基礎からデプロイまで」でハマった時の解決策


truffle unbox reactが失敗する問題

「9.1.1 開発環境のセットアップ」
Nvmを使って、Nodeのバージョンを色々変えてみましょう

npm ERR! code 1
npm ERR! path /Users/kobayashitomoya/fundraiser/fundraiser-dapp/client/node_modules/sha3
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! CXX(target) Release/obj.target/sha3/src/addon.o
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | darwin | x64
npm ERR! gyp info find Python using Python version 3.8.2 found at "/Library/Developer/CommandLineTools/usr/bin/python3"
npm ERR! gyp info spawn /Library/Developer/CommandLineTools/usr/bin/python3 
nvm install v12.1.0
nvm use v12.1.0 

truffle develop → compileが失敗する問題

p.172
Solidityのバージョンが異なるのが問題
バージョンを合わせましょう

・fundraiser-dapp/contracts/Fundraiser.sol
・fundraiser-dapp/contracts/FundraiserFactory.sol
・fundraiser-dapp/contracts/Migrations.sol
・fundraiser-dapp/contracts/SimpleStorage.sol

- pragma solidity >=0.4.21 <0.7.0;
+ pragma solidity >=0.4.21 <0.9.0;

・fundraiser-dapp/truffle-config.js

  },
  // Configure your compilers
  compilers: {
    solc: {
      version: "0.8.0",    // Fetch exact version from solc-bin (default: truffle's version)
      // docker: true,        // Use "0.5.1" you've installed locally with docker (default: false)
      // settings: {          // See the solidity docs for advice about optimization and evmVersion
      //  optimizer: {
      //    enabled: false,
      //    runs: 200
      //  },
      //  evmVersion: "byzantium"
      // }
    }
  },

Metamaskが繋がらない!

p.84 「9.2.4 Reactを使ってあいさつ文を設定する」
Metamaskを再インストールしましょう
https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=ja