Se dice si corremos:
suicide(address recipient);
Al final del contrato, el destinatario recibirá la cantidad de Ether propiedad del contrato.
Pregunta 1: ¿Cómo sabe el contrato (y esta función) dónde está la cantidad de Ether?
Pregunta 2: En el primer ejemplo aquí , no tienen "suicidio", entonces, ¿cómo se liberan los fondos al destinatario (o beneficiario)?
"pagadero" permite que una función (y contrato) reciba Ether, y puede realizar un seguimiento de la cantidad que recibe mediante el uso de una matriz, por ejemplo
mapping (address => uint) balances;
Pregunta 3: ¿Cómo reclama el contrato el dinero que recibe?
P1) El contrato simplemente tiene el éter... Por ejemplo:
Intentarthis.balance
No estoy familiarizado con el ensamblaje exacto generado, pero supongo que hace lo siguiente:
1)recipient.send(this.balance)
2) enviar el código de operación de matar
Puede ser que sea una forma de "eliminar" Al igual que eliminar xyz[1234] recupera algo de gas
P2) A menos que una función que envía beneficiary.send(this.balance)
fondos pueda bloquearse esencialmente dentro de un contrato, no hay "magia" en marcha, puede escribir contratos terribles si lo desea :)
P3) Como un contrato recibe fondos a través de una función pagadera, solo los tiene, no necesita reclamarlos, a menos que se trate de recibir un token ERC-20, pero ese es un capítulo completamente diferente
ismael
SELFDESTRUCT
que hace todo.