Soy nuevo en la tecnología ethereum y blockchain y trato de entender algunas cosas (Etheruem, Truffle, DApps, etc.) aquí y allá desde Internet. Del sitio web oficial de Ethereum,
Estoy tratando de entender específicamente estas funciones
approve(address _spender, uint _value) returns (bool success) {...}
approveAndCall(address _spender, uint _value, bytes _extraData) returns (bool success) {...}
transferFrom(address _from, address _to, uint _value) returns (bool success) {...}
y por ultimo estofunction() {throw;}
Este código de contrato
contrato tokenRecipient { función recibirAprobación(dirección _de, uint _valor, dirección _token, bytes _extraData); }
y esta declaraciónmapping (address => mapping (address => uint) ) public allowance;
approve(address _spender, uint _value) returns (bool success) {...}
Esta función solo se usa para hacer una entrada a la matriz de asignación cuando otro contrato quiere gastar algunas fichas. _ gastador es la dirección del contrato que lo va a utilizar. _value denota la cantidad de tokens que se gastarán. approveAndCall(address _spender, uint _value, bytes _extraData) returns (bool success) {...}
si approve()
la función devuelve verdadero, invocará la receiveApproval()
función del contrato tokenRecipient
. transferFrom(address _from, address _to, uint _value) returns (bool success) {...}
Esta función se utilizará para transferir tokens de una dirección a otra. Las variables se explican por sí mismas. function() {throw;}
Esta es la función de reserva. Según su funcionalidad, esta función se ejecutará cuando alguien intente enviar el ether al contrato. throw;
evita el envío accidental de éter. contract tokenRecipient { function receiveApproval(address _from, uint _value, address _token, bytes _extraData); }
Esto le dice al MyToken
contrato que la función receiveApproval
del contrato tokenRecipient
se puede invocar en algún lugar de este código.mapping (address => mapping (address => uint) ) public allowance;
Y, por último, esta línea es una forma de declarar una matriz definiendo el tipo de clave y valor. El valor además puede contener una matriz. Puede asumir que es una matriz 2D. Esto se está utilizando aquí para mantener el registro de los usuarios que solicitan la aprobación para gastar el token en los otros contratos.
Este contrato cumple con ERC20 ya que implementa las funciones de aprobación (...), transferencia (...) y transferencia de (...).
Para más detalles: https://theethereum.wiki/w/index.php/ERC20_Token_Standard#How_Does_A_Token_Contract_Work.3F
approve
son parte del estándar de token ERC 20. Eso es algo muy importante a tener en cuenta, creo.
transfer
transferFrom
bytes _extraData
parámetro de applyAndCall?
privacidadisahumanright.eth
transfer(...)
yapprove(...)
lastransferFrom(...)
funciones en theethereum.wiki/w/index.php/… .Devendra Chouhan