躓いたこと1
遭遇した問題
デプロイ時にガスが足りないよエラーが出ていた
$ truffle migrate --network ropsten
Using network 'ropsten'.
Running migration: 1_initial_migration.js
Deploying Migrations...
Error encountered, bailing. Network state unknown. Review successful transactions manually.
insufficient funds for gas * price + value
原因
ガスを保持しているアドレスに参照がちゃんと行っていなかったため、デプロイに必要なガスを払えなかった
解決策
自分の場合はmetamaskの4つ目のアドレスにropstenのethを保持していたのでそれを指定するか、デフォルトだと1つ目のアドレスのethを使ってデプロイするので1つ目のアドレスにgasを払える量のethを入れる
学んだこと
-
truffle-hdwallet-provider
の3番目の引数にindexを指定すればMetaMaskの2番目のアドレスを使うみたいなことができる
new HDWalletProvider(mnemonic, "https://ropsten.infura.io/" + accessToken, 3);
- metamaskのネットワークをropstenに切り替えて、アドレスからBUY>ROPSTSN TEST FAUCETを押すと1ethを何回でもリクエストできるページに飛べる
躓いたこと2
遭遇した問題
ropstenネットにデプロイトランザクションは発行されたが終わる気配がなかった
原因
gasPriceが100weiだったので少なすぎた
ropsten: {
provider: function() {
return new HDWalletProvider(mnemonic, "https://ropsten.infura.io/" + accessToken);
},
network_id: 3,
gas: 4700000,
gasPrice: 100
}
解決策
gasPriceの定義を消してデフォルト(100Gwei)にし、デプロイを行うと一瞬でデプロイがすんだ
https://ropsten.etherscan.io/tx/0x488889e5315f24e8efd5c6072dd0482ba0b3f9c5f6301c248cc83085417b1e60
学んだこと
- truffleのgas priceはwei単位
- トランザクションは止められないのでgas増やしてもう一度デプロイを実行する
- gasPriceが100Gweiをメインで行うともったいない。ethgasstationを見てどれくらい支払うか学ぶ