¿Cómo actualizo mi saldo en un contrato?
Creé una función que recibe como parámetro una dirección, puedo visualizar el saldo:
address.balance
.
Pero quiero transferir el saldo a una cuenta y actualizar el valor, pero no puedo hacer:
address.balance = + value;
¿Qué debo hacer?
Los saldos están a nivel de protocolo, son independientes de los contratos y no se puede asignar un saldo desde dentro de un contrato.
Hay más de una forma de hacerlo, pero la más común y segura es utilizar el .transfer()
método que se adjunta a todas las variables de tipo dirección.
Para transferir de este contrato a otro lugar:
address somewhereElse = 0x123...
somewhereElse.send(amountInWei);
Desde otro lugar a este contrato, alguien tiene que enviarlo. Por ejemplo, desde su billetera hasta la dirección del contrato.
Su contrato necesita una payable
"función alternativa" o rechazará los fondos.
function () payable {
// we are here when someone else sends funds.
// this provides an opportunity to emit an event.
// address(this).balance will automatically += msg.value
}
Espero eso ayude.
Jarbas Lucena
Rob Hitchens
Marco Ottolini
Jarbas Lucena