Я в основном следовал этому руководству по краудсейлу Zeppelin , просто изменил названия контрактов. Мне удалось успешно развернуться на локальном Ganache, но затем при попытке развернуть в действующей сети ethereum он терпит неудачу, по- invalid address
видимому, вызванную миграцией 1_initial_migration.js
, которая выглядит следующим образом:
var Migrations = artifacts.require("./Migrations.sol");
module.exports = function(deployer) {
deployer.deploy(Migrations);
};
и Migrations.sol выглядит так:
pragma solidity ^0.4.17;
contract Migrations {
address public owner;
uint public last_completed_migration;
modifier restricted() {
if (msg.sender == owner) _;
}
function Migrations() public {
owner = msg.sender;
}
function setCompleted(uint completed) public restricted {
last_completed_migration = completed;
}
function upgrade(address new_address) public restricted {
Migrations upgraded = Migrations(new_address);
upgraded.setCompleted(last_completed_migration);
}
}
Вот скриншот из терминала, где происходит truffle migration
сбой:
Как это возможно, что я могу выполнить развертывание в Ganache, но не в действующей сети? Я делаю что-то неправильно? Какие-либо предложения?
Я столкнулся с подобной проблемой, я могу решить ее после удаления файлов JSON из /build/contracts
. Затем я попытался повторно развернуть контракт, и это было сделано успешно.
шахарсоль
--light
модификатором. это может быть причиной?Никита Фукс
Лаури Пелтонен