Ether de reembolso almacenado en un contrato

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 :)

¿Puede darnos un enlace a la transacción rinkeby en la que intentó y no pudo recuperar el éter? ¿Se revirtió la transacción o falló silenciosamente?
¿Puedes reemplazarlo selfdestruct(msg.sender)y msg.sender.transfer(address(this).balance)decir si funciona?
@JesseBusman Here's the contract adress: 0x0b5933fd3D33F7d79C0e19e12A070fafA053Df57 rinkeby.etherscan.io/address/… The latest transaction is 0x70b1860a8f1c9f2ec002e737744198a83f8d8182c6b853895991ffceec6201f9 I also published the Code of the Contract in Etherscan, to make it easier to understand my code.
@goodvibration También probé esta solución, pero no hace ninguna diferencia. Tengo mi código de github.com/PaulRBerg/contractz/blob/master/contracts /... Esto funciona perfecto...

Respuestas (2)

Acabo de mirar sus transacciones y veo que no está llamando a la paybackEther()función en absoluto:

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 :)

¡Gracias por ayudarme! Lo probé ahora en 3 computadoras diferentes y, de hecho, todas las transacciones tienen datos de entrada de 0x. Estoy casi seguro, la falla está dentro de mi código... Todas las computadoras muestran el mismo problema. Y otros contratos funcionan sin problemas... ¿Tienes algún otro consejo para mí?
Por ejemplo, probé este código: github.com/PaulRBerg/contractz/blob/master/contracts/… (Contract Destructible, fuction destroy)

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);
}

}