Skip to main content
An evmEventDecoder declares two entries that can match one log: the same topic0 and the same number of topics, and no indexed parameter that both entries filter on value lists with no value in common. A log goes to one entry only, so the other would silently miss it. Two entries for one event are fine when their filters on one parameter share no value, such as { from: ALICE } and { from: BOB }. So are entries that share topic0 but not the topic count, such as ERC-20 and ERC-721 Transfer. Fix — put each overlapping filter in its own evmEventDecoder(). Every output then receives all the logs its filter matches, so a log that fits both filters appears in both outputs. Wrong — a transfer from Alice to Bob matches both entries:
Right — one decoder per filter: