Filtrado de eventos por dirección de contrato y dirección del remitente

Necesito ver eventos por dos parámetros: dirección del contrato de token y dirección del remitente. Encontré cómo ver la dirección del contrato, pero no estoy seguro de cómo ver también por la dirección del remitente. ¿Debo especificar la dirección de temas como este?:

var eventFilter = web3.eth.filter({
    fromBlock:0,
    toBlock: 'latest',
    address: '0xefcc9f9a5cb3d6062c18eeffdf90a29bb771fccc',
    'topics':[web3.sha3('Transfer(address,address,uint256,uint256)'), web3.sha3('0xdd7b798cbfe06af77fdc4b64e48f71672595adcf')]});
eventFilter.watch(function(error, result) {
    if(error) throw error;
    console.log(result);
});

o tal vez hay una manera diferente?

Respuestas (1)

La dirección en FilterChange es la dirección de los contratos emisores.

Debe incluir la dirección del remitente en la definición de su evento para poder ingresar a FiltecChange. Solo si indexa la dirección , aparecerá en los temas, para que pueda filtrarla.

event CalledTrigger (address indexed from, uint256 value1, uint256 value2);

function triggerEvent() public {
  uint256 myVal1 = 9999;
  uint256 myVal2 = 9999;
  emit CalledTrigger2(msg.sender, myVal1, myVal2);
}

Pero su problema podría ser que su tema [1] es el sha3 de una dirección, no la dirección que supongo que desea filtrar.