Soy nuevo en Solidity y trato de implementar un contrato para ver si la dirección es EOA o Smart Contract. El código se muestra a continuación. No puedo ver el valor booleano cuando ejecuté el contrato en la red principal.
pragma solidity ^0.4.0;
contract Ballot {
event isEOAOrNot(bool val);
function isContract(address addr) returns (bool) {
uint size;
assembly { size := extcodesize(addr) }
bool val = size > 0;
isEOAOrNot(val);
return val;
}
}
Te has perdido la emisión al llamar al evento isEOAOrNot(val). debiera ser:
emit isEOAOrNot(val);
Si compila un contrato diferente, los contratos anteriores que implementó ya no mostrarán eventos. Por lo tanto, vuelva a compilar el contrato para el que desea ver los eventos antes de llamar al método.
erick robertson
Nicolás
cmikeb1
QWERTY