Truffle

Truffle migrate –network ropsten 始終執行開發網路

  • August 2, 2019

我正在嘗試使用 Truffle 和 Infura 將一個簡單的合約部署到 Ropsten 網路。我已經在文件中設置了 Ropsten 網路,truffle-confug.js但 truffle 似乎總是使用該development網路。

當我嘗試使用遷移契約時,truffle migrate --network ropsten我看到以下錯誤:


> simple-eth-server@1.0.0 truffle /home/kuzdogan/Desktop/repos/simple-eth-server
> truffle "migrate" "ropsten"


Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.


Could not connect to your Ethereum client with the following parameters:
   - host       > 127.0.0.1
   - port       > 7545
   - network_id > 5777
Please check that your Ethereum client:
   - is running
   - is accepting RPC connections (i.e., "--rpc" option is used in geth)
   - is accessible over the network
   - is properly configured in your Truffle configuration file (truffle-config.js)

Truffle v5.0.25 (core: 5.0.25)
Node v10.16.0

這是我的truffle-config.js

const config = require("./config.js")
const HDWalletProvider = require("truffle-hdwallet-provider");

module.exports = {

 networks: {

   ropsten: {
     provider: function() {
       return new HDWalletProvider(config.mnemonic, "https://ropsten.infura.io/v3/" + config.infuraKey)
     },
     network_id: 3
   }   
 },
}

到目前為止我已經嘗試過:

  • 重命名truffle-config.jstruffle.js
  • 添加開發網路。truffle-config.js然後 URL 和參數與文件中的相同
  • ropsten將網路配置重命名為development. 在這種情況下,migrate命令會靜默完成執行,之後Everything is up to date, there is nothing to compile.

我不知何故覺得問題出在我的 Infura 配置上。我該如何調試呢?

問題在於我執行松露的方式,與松露或程式碼無關。

我使用 truffle 作為本地 npm 包。package.json我在as中設置了一個腳本

"scripts": {
   ": "node_modules/.bin/truffle"
 },

我正在執行二進製文件

npm run truffle

編譯時腳本正常執行:

npm run truffle compile

但是,由於網路標誌是--network此命令,因此npm. 這也可以在上面的行中看到:

> truffle "migrate" "ropsten"

所以只需全域執行 truffle 或從node_modules/.bin/truffle

引用自:https://ethereum.stackexchange.com/questions/72402