Estoy invocando la función buyTicket del contrato de la cuenta "0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C" en el IDE de remix con 20 éteres, que está claro en el registro, pero confunde las direcciones "de" y "tema" en el ide de Remix según el registro a continuación, ¿alguna idea, por favor? Gracias
event Deposit(address _from, uint _amount);
function buyTicket() public payable returns (bool success) {
if (numRegistrants >= quota) { return false; } // see footnote
registrantsPaid[msg.sender] = msg.value;
numRegistrants++;
emit Deposit(msg.sender, msg.value);
return true;
}
Registro de ide de remezcla
[
{
"*from*": "0x692a70d2e424a56d2c6c27aa97d1a86395877b3a",
"***topic***": "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c",
"event": "Deposit",
"args": {
"0": "0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C",
"1": "20",
"_from": "0x14723A09ACff6D2A60DcdF7aA4AFf308FDDC160C",
"_amount": "20",
"length": 2
}
}
]
from
debe ser la dirección del contrato.
topics
es el nombre hash de su evento en el contrato inteligente
from
debe ser la dirección de la cuenta que realiza la transacción/llama a la funciónfrom
, ¡lo estoy analizando ahora mismo!msg.sender
la cuenta de quien envía la transacción/llama a la función. Entonces, obviamente, la dirección registrada como _from
en su evento debe ser exactamente la misma que la from
anterior. (Aquí entiendo por qué preguntas :)). Intente codificar esto, justo antes de su if
declaración en su contrato inteligente: ¿ require(numRegistrant == msg.sender)
dónde numRegistrant
debería estar la cuenta que llama a la función?Los encuentra en la ventana de terminal debajo del editor. Simplemente haga clic en el registro para expandirlo y obtendrá todos los detalles sobre la transacción.
Lbrth_BoC