Когда я запускаю следующую команду, я не получаю никакого вывода:
truffle migrate --network ropsten
Это сразу после создания нового проекта с использованием truffle init
и созданием одного контракта.
Когда я запускаю truffle develop
и запускаю команду миграции из консоли, все работает нормально.
Это содержимое моего файла truffle.js:
var HDWalletProvider = require("truffle-hdwallet-provider");
var mnemonic = "my twelve word mnemonic......";
module.exports = {
networks: {
ropsten: {
provider: function() {
return new HDWalletProvider(mnemonic, "https://ropsten.infura.io/xxxxxxxxxxxxx")
},
network_id: 3
},
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
}
}
};
У меня Ubuntu 16.04 и последняя версия трюфеля 4.1.8.
(и да, я пополнил свой счет на Ropsten эфиром из крана)
Вот как я делаю это, например, для развертывания в Kovan, изменяя ссылку infura, которую вы можете развертывать в каждой тестовой сети . У меня работает отлично:
const HDWalletProvider = require('truffle-hdwallet-provider');
const Web3 = require('web3');
const { interface, bytecode } = require ('./compile'); //That files come from the compile.js you can see it below.
const provider = new HDWalletProvider(
'12 words mneumonic',
'https://kovan.infura.io/XXXXXXXXXXXX'
);
const web3 = new Web3(provider);
const deploy = async ()=> { //Create that function to use async & await
const accounts = await web3.eth.getAccounts();
console.log('Attempting to deploy from account', accounts[0]);
const result = await new web3.eth.Contract(JSON.parse(interface))
.deploy({data: bytecode})
.send({ gas: '30000000', from: accounts[0]});
console.log('Contract deployed to', result.options.address);
console.log(interface);//We pass the ABI through the console to be able to use it to build the javascript object that emulates the contract on our react code.
};
deploy();
Здесь я оставляю вам compile.js на тот случай, если он вам понадобится.
const path = require('path'); // Helps to find the path to the contract across whatever OS you are using form compile.js to xxx.sol files
const fs = require('fs'); // Load the FileSystem Module.
const solc = require('solc');
const contractPath = path.resolve(__dirname, 'contracts', 'Contracts_Remix.sol'); //Creation of cross SO's path.
const source = fs.readFileSync(contractPath, 'utf8');
//We compile the source code, of 1 single contract and showed the bytecode and the ABI by console to examine it.
console.log(solc.compile(source),1);
module.exports = solc.compile(source).contracts[':Your_contract_name'];
//We only call the contract we want to deploy.
Надеюсь, это поможет!
У меня была та же проблема, но в моем случае я неправильно установил для переменной среды конечной точки infura свой секретный ключ вместо идентификатора моего проекта. Если это поможет кому-то еще прочитать это, убедитесь, что ваша конечная точка infura верна!
Ничего не получая с этим, кажется, что миграция застревает в первой части:
> {
> "jsonrpc": "2.0",
> "id": 1,
> "method": "eth_accounts",
> "params": []
> }
Это может быть потому, что я за корпоративным прокси, но я не могу сказать по выходным данным. Тупик!
У меня была аналогичная проблема, и понижение версии поставщика hdwallet решило проблему (truffle-hdwallet-provider с 1.0.7 до 1.0.6).
Грег Джинмарт
--verbose-rpc
, чтобы получить некоторые следы отладки. В противном случае, если вы хотите сбросить сборку с нуля, попробуйте--reset --compile-all
Симбро
Грег Джинмарт
--reset --compile-all
?Симбро
truffle compile --reset --compile-all
?Грег Джинмарт
truffle migrate --network ropsten --reset --compile-all --verbose-rpc
Симбро
{ "jsonrpc": "2.0", "id": 1, "method": "eth_accounts", "params": [] }