Básicamente seguí este tutorial de crowdsale de Zeppelin , solo cambié los nombres de los contratos. Pude implementar con éxito en un Ganache local, pero luego, cuando intento implementar en la red Ethereum en vivo, falla invalid address
, aparentemente generado por la migración 1_initial_migration.js
, que se ve así:
var Migrations = artifacts.require("./Migrations.sol");
module.exports = function(deployer) {
deployer.deploy(Migrations);
};
y Migraciones.sol se ve así:
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);
}
}
Aquí hay una captura de pantalla de la terminal donde truffle migration
falla:
¿Cómo es posible que pueda implementar en Ganache pero no en la red en vivo? ¿Estoy haciendo algo mal? ¿Alguna sugerencia?
Me había enfrentado a un problema similar. Puedo resolverlo después de eliminar los archivos JSON de /build/contracts
. Luego traté de volver a implementar el contrato y se hizo con éxito.
shaharsol
--light
modificador. puede ser esta la razon?Nikita Fuchs
Lauri Peltonen