Estoy tratando de almacenar Ether dentro de un contrato y reembolsarlo cuando llamo a la función paypackEther(). Dentro de Remix IDE con JavaScript VM funciona perfectamente, pero cuando lo ejecuto en Rinkeby con Mist, no puedo obtener el éter almacenado. me esta volviendo loco...
¿Cuál es mi error?
pragma solidity ^0.4.24;
contract SimpleContract {
function () public payable {
}
constructor() payable public {
}
function paybackEther() public {
selfdestruct(msg.sender);
}
}
La dirección del contrato es: 0x0b5933fd3D33F7d79C0e19e12A070fafA053Df57 https://rinkeby.etherscan.io/address/0x0b5933fd3d33f7d79c0e19e12a070fafa053df57
Gracias de antemano :)
Acabo de mirar sus transacciones y veo que no está llamando a la paybackEther()
función en absoluto:
0x9afb64e3082d06e0915f7d89a2b436ae3f9f273630407b52662d3a5785933336
0xd70b7dae05ee903868fc9367f6a3795b76e0916597187c1fda31bbf3c655d321
0x70b1860a8f1c9f2ec002e737744198a83f8d8182c6b853895991ffceec6201f9
Todas estas transacciones envían 0 ether y 0 bytes de datos al contrato. Una llamada a paybackEther()
enviaría 4 bytes de datos al contrato.
Lo más probable es que estés haciendo algo mal al intentar llamar a la función en Mist. No sé qué, porque no puedo mirar en tu pantalla y ver qué botones estás presionando :)
Encontré una respuesta, pero no es muy "limpia": parece que Mist necesita un parámetro de entrada en la función paybackEther...
pragma solidity ^0.4.24;
contract SimpleContract {
bool public finished;
function () public payable {
}
constructor() payable public {
}
function paybackEther(bool newfinished) public {
finished = newfinished;
selfdestruct(msg.sender);
}
}
jesús
buena vibración
selfdestruct(msg.sender)
ymsg.sender.transfer(address(this).balance)
decir si funciona?andreas schmidt
andreas schmidt