完了していなかったmigrate
以前に作ったTokenがmigrateしていたつもりでも、正しく終えていなかった事があった。
githubで共有していたので、他の人に試してもらってた所、addressを取得しようとしたところでエラーが出るそうな。
truffle(private)> minaToken.address
Error: minaToken has no network configuration for its current network id (3).
at Function.getter (/usr/local/lib/node_modules/truffle/build/webpack:/~/truffle-contract/contract.js:655:1)
at Function.get (/usr/local/lib/node_modules/truffle/build/webpack:/~/truffle-contract/contract.js:740:1)
at Function.getter (/usr/local/lib/node_modules/truffle/build/webpack:/~/truffle-contract/contract.js:658:1)
at Function.network (/usr/local/lib/node_modules/truffle/build/webpack:/~/truffle-contract/contract.js:719:1)
truffle(private)> minaToken.deployed().then(inst =>{ tokeninst = inst })
undefined
truffle(private)> tokeninst.address
'0xd5e8************************************'
truffle(private)> minaToken.address
'0xd5e8************************************'
こんな感じでdeployed()を一度行うと、出来ている様子。
しかし、自分の方では出来ていたようで色々、新しく作り直してみてみると・・・同様の現象を再現できた。
$ truffle migrate --network private
Using network 'private'.
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0x050dcb4cd7d1fdf55fb37e0cc7fdd73d6400c7f0bfe6a422a5c53ab2ca9ed67a
Migrations: 0x0d8c************************************
Saving successful migration to network...
... 0xb7b0cb198b37a32ea8f9aad829c2ff5e0affed9c295b22e9254516dac30dbcb2
Saving artifacts...
Running migration: 2_deploy_contracts.js
Deploying minaToken...
... 0x2454b73807213939ed14bfcdf5c7eb9ee5b441266256e9dbaf3d90951a6d311b
minaToken: 0xd5e8************************************
Saving artifacts...
$
どうにも完全にMigrateが完了していない感じ。エラーは出ていない。
$ truffle migrate --network private
Using network 'private'.
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0x42f52edc04e1427c16f79cbd50b9500beb85d0c36b6e2a46f5feac3a25b5b31c
Migrations: 0x8cda************************************
Saving successful migration to network...
... 0xd7bc86d31bee32fa3988f1c1eabce403a1b5d570340a3a9cdba53a472ee8c956
Saving artifacts...
Running migration: 2_deploy_contracts.js
Deploying minaToken...
... 0x16b57d9d2046cea5c90d16bba7a7ff23f14de05fcca5b2eba054161b71a9d378
minaToken: 0x345c************************************
Saving successful migration to network...
... 0xf36163615f41ef7ed8f4a8f192149a0bf633fe1a2398ce001bf44c43dc7bdda0
Saving artifacts...
失敗の方は、後半の「Saving successful migration to network...」が出ていないこと。
正常に終了していない感じではある。エラーは出てないし、一体何が違うんだろう・・・?
解決したのはしたけれど
truffle.js
module.exports = {
networks: {
private: {
host: "127.0.0.1",
port: 7545,
network_id: "*"
}
}
};
小一時間、というかほぼ半日程度悩んだ感じで、実験を繰り返して・・・
上手くいかないものは、truffle.jsでnetwork_id: 3
となっていたところ。
これを”*”にする事でsuccessful migrationが出るようになりました。
Ganacheを使ってる環境だからこの辺りは、問題はないかもしれないけどTest netやMain netだとそれで大丈夫なのだろうか?