Filtern von Ereignissen nach Vertragsadresse und Absenderadresse

Ich muss Ereignisse anhand von zwei Parametern überwachen: Adresse des Token-Vertrags und Absenderadresse. Ich habe herausgefunden, wie ich die Vertragsadresse sehen kann, bin mir aber nicht sicher, wie ich auch nach der Absenderadresse sehen kann? Soll ich Adresse zu solchen Themen angeben?:

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);
});

oder vielleicht geht es auch anders?

Antworten (1)

Die Adresse im FilterChange ist die Adresse des aussendenden Vertrages.

Sie müssen die Absenderadresse in Ihre Ereignisdefinition aufnehmen, um in FiltecChange zu gelangen. Nur wenn Sie die Adresse indizieren , wird sie in Themen angezeigt, sodass Sie danach filtern können.

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

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

Aber Ihr Problem könnte sein, dass Ihr Thema[1] das sha3 einer Adresse ist, nicht die Adresse, nach der Sie vermutlich filtern möchten.