先日、Truffleの勉強中にGanache(プライベートネットのデータ)をリセットしようと思ってハマりました。
そこで以下のペットショップの例を元にプライベートネットのリセット手順をステップバイステップでまとめました。
最初の状態
1番目のペットがSuccess状態になっており、プライベートネットにデータが書き込まれている状態です。
Ganacheをリセット
Network IDを元々のIDと違うものにします。ここではカウントアップして5781→5782へ変更しました。
「SAVE AND RESTART」ボタンを押すとデータ(及びコントラクト)の初期化が起こります。
この後画面が止まることがあるのでその場合はGanacheアプリを再起動してください。
以下のように全員のBALANCEが100に戻っていれば成功です。
Metamaskのリセット
次にChromeの拡張機能の設定でMetamaskを一旦無効にして再度有効にします。
これで内部キャッシュが消えます。
Account1のキャッシュが100に戻っていれば成功です。
再度デプロイ
コントラクトも消えてしまっているのでデプロイし直します。
スマートコントラクトをデプロイ(ここは各アプリによって異なる場合あり)
$ truffle migrate
Using network 'development'.
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0xa62e50bcc466353b229a9d9c4f1d61ff0c27eb3f7423174532eb9e875c318485
Migrations: 0x8cdaf0cd259887258bc13a92c0a6da92698644c0
Saving successful migration to network...
... 0xd7bc86d31bee32fa3988f1c1eabce403a1b5d570340a3a9cdba53a472ee8c956
Saving artifacts...
Running migration: 2_deploy_contracts.js
Deploying Adoption...
... 0x4f39b4b30e8d5283a79691f34367345f5d20ed5d1aeef99c6b44d1364ca72c22
Adoption: 0x345ca3e014aaf5dca488057592ee47305d9b3e10
Saving successful migration to network...
... 0xf36163615f41ef7ed8f4a8f192149a0bf633fe1a2398ce001bf44c43dc7bdda0
Saving artifacts...
Webサーバーのリセット
最後にWebサーバーもリセットします。
Webサーバーもリセット
$ npm run dev
> pet-shop@1.0.0 dev /Users/tomo1026/truffleProjects/pet-shop-tutorial
> lite-server
** browser-sync config **
{ injectChanges: false,
files: [ './**/*.{html,htm,css,js}' ],
watchOptions: { ignored: 'node_modules' },
server:
{ baseDir: [ './src', './build/contracts' ],
middleware: [ [Function], [Function] ] } }
[Browsersync] Access URLs:
-------------------------------------
Local: http://localhost:3000
External: http://192.168.1.43:3000
-------------------------------------
UI: http://localhost:3001
UI External: http://192.168.1.43:3001
-------------------------------------
[Browsersync] Serving files from: ./src
[Browsersync] Serving files from: ./build/contracts
[Browsersync] Watching files...
18.03.07 17:45:35 304 GET /index.html
18.03.07 17:45:35 304 GET /css/bootstrap.min.css
18.03.07 17:45:35 304 GET /js/bootstrap.min.js
18.03.07 17:45:35 304 GET /js/web3.min.js
18.03.07 17:45:35 304 GET /js/truffle-contract.js
18.03.07 17:45:35 304 GET /js/app.js
18.03.07 17:45:36 304 GET /pets.json
18.03.07 17:45:36 200 GET /Adoption.json
18.03.07 17:45:37 304 GET /images/scottish-terrier.jpeg
18.03.07 17:45:37 304 GET /images/french-bulldog.jpeg
18.03.07 17:45:37 304 GET /images/boxer.jpeg
18.03.07 17:45:37 304 GET /images/golden-retriever.jpeg
確認
ペットたちがAdopt済み(Success)になっていなければリセット成功です。
もう一度Adoptを試みます。
Submitすると残高が減ってトランザクションが完了していれば成功です。
Webサイトを再更新するとSuccessになっていることが確認できます。