//tips
//smart contract
ここからはremixではなく、nodejsやganancheなどを使用してdeployしていく。
npm -v
node -v
mkdir test12
今回はtest12として行っていく。
npm init -y
にてnodeプロジェクトの初期設定を行う。
npm install --save web3
簡単なganache アカウント間の送金であればターミナルのみで可能なよう。
nodeにて下記のような作業。
let web3=require("web3");
let web3=new web3(new web3.providers.HttpProvider("http://localhost:7545"));
web3.eth.sendTransaction…
エラーが出た。あかんやつや。一旦保留。
Smartcontractで一番難しいのが環境設定であることを肝に銘じておく。むしろ、コントラクト内容であるsolidityはかなりわかりやすい部分。
基本的には最新情報にアップデートされたレクチャーはないと考え、自分なりに改造を施していく方が良いかも。
先にやっていたプロジェクトをデプロイし、表示まで持っていくことに注力する。なんとか環境設定を成功させる。
├── @truffle/hdwallet-provider@1.7.0
├── fs-extra@10.0.0
├── ganache-cli@6.12.2
├── mocha@9.1.3
├── next-routes@1.4.2
├── next@12.0.4
├── react-dom@17.0.0
├── react@17.0.0
├── semantic-ui-css@2.4.1
├── semantic-ui-react@2.0.4
├── solc@0.4.17
└── web3@1.6.1
一旦最終形態のものをインストールしてそちらに必要な設定を行うことで表示できないか試みる。
Kickstartfinalフォルダを作成し、環境設定を行っていく。
普通にそのフォルダに各モジュールをインストールしようとするとERESOLVE unable to resolve dependency treeエラーが生じてしまう。
https://qiita.com/koh97222/items/c46d1ef2a63b92bb6c15
https://qiita.com/masato_makino/items/06011fcecc91be583636
上記を参考にし、下記で実行。
-save --legacy-peer-deps ganache-cli mocha solc@0.4.17 fs-extra web3
-save --legacy-peer-deps next react react-dom
これで強制的に導入を行うことができたのでnpm list --depth=0でチェックしてみると
├── @truffle/hdwallet-provider@1.7.0
├── fs-extra@10.0.0
├── ganache-cli@6.12.2
├── mocha@9.1.3
├── next-routes@1.4.2
├── next@10.2.3
├── react-dom@17.0.2
├── react@17.0.2
├── semantic-ui-css@2.4.1
├── semantic-ui-react@2.0.4
├── solc@0.4.17
└── web3@1.6.1
Nextのバージョンだけ少しダウングレードして導入してくれていることがわかった。
こちらで進めるか試していく。
まずはbuildフォルダにコンパイル情報が格納されるかを確認。
cd ethereum
node compile.js
これは無事にクリア。
次にテストが実行されるかの確認。
cd kickstartfinal
npm run test
Campaigns
✔ deploys a factory and a campaign
✔ marks caller as the campaign manager
✔ allows people to contribute money and marks them as approvers (60ms)
✔ requires a minimum contribution
✔ allows a manager to make a payment request (81ms)
104.999827672
✔ processes requests (169ms)
6 passing (1s)
無事にテストもパスできた。
npm install @truffle/hdwallet-provider
を追加してのデプロイ。
cd ethereum
node deploy.js
無事にデプロイ時のトランザクションも入手できた。
Npm run devしたら無事にアプリを確認することができた。