我正在尝试使用Infura或任何其他公共提供者来编译和迁移一个简单的测试合同。
我跑的时候没有任何错误
truffle compile --network test但它似乎挂着,永远也不完整。
同
truffle migrate --network live这是我的truffle.js的一个副本(助记符是在下面组成的)
var bip39 = require("bip39");
var hdkey = require('ethereumjs-wallet/hdkey');
var ProviderEngine = require("web3-provider-engine");
var WalletSubprovider = require('web3-provider-engine/subproviders/wallet.js');
var FiltersSubprovider = require('web3-provider-engine/subproviders/filters.js');
var Web3Subprovider = require("web3-provider-engine/subproviders/web3.js");
var Web3 = require("web3");
var mnemonic = "know give beef link depth liberty fish forward ketchup fog either faculty";
var hdwallet = hdkey.fromMasterSeed(bip39.mnemonicToSeed(mnemonic));
var wallet_hdpath = "m/44'/60'/0'/0/";
var wallet = hdwallet.derivePath(wallet_hdpath + "0").getWallet();
var address = "0x" + wallet.getAddress().toString("hex");
var provider_url = "https://testnet.infura.io/";
var engine = new ProviderEngine();
engine.addProvider(new WalletSubprovider(wallet, {}));
engine.addProvider(new FiltersSubprovider());
engine.addProvider(new Web3Subprovider(new Web3.providers.HttpProvider(provider_url)));
engine.start();
module.exports = {
networks: {
test: {
network_id: 3,
provider: engine,
from: address
}
}
};我的package.json是
{
"name": "Infura Test",
"version": "1.0.0",
"description": "",
"main": "truffle.js",
"directories": {
"test": "test"
},
"devDependencies": {
"bip39": "^2.3.1",
"ethereumjs-wallet": "^0.6.0",
"truffle": "^3.4.5",
"web3": "^0.18.2",
"web3-provider-engine": "^13.2.8"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "@bkawk",
"license": "ISC"
}发布于 2017-10-25 12:23:04
这个答案展示了如何使用包truffle-hdwallet-provider和Infura:
在truffle.js中:
var HDWalletProvider = require("truffle-hdwallet-provider");
var infura_apikey = "XXXXXX";
var mnemonic = "twelve words you can find in metamask/settings/reveal seed words blabla";
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
},
ropsten: {
provider: new HDWalletProvider(mnemonic, "https://ropsten.infura.io/"+infura_apikey),
network_id: 3
}
}
};部署在ropsten网络上
$ truffle migrate --network ropsten发布于 2017-07-29 20:42:33
尝试添加以下内容:
// network connectivity error
engine.on('error', function(err) {
// report connectivity errors
console.error(err.stack)
})在engine.start();之前
发布于 2017-09-04 11:09:13
变量provider_url = "https://testnet.infura.io/";
尝试输入您的个人网址(那个带有密钥的URL ),例如"https://ropsten.infura.io/YourKeyThatWasSentToYourEmail“
https://ethereum.stackexchange.com/questions/22911
复制相似问题