I stumbled across one contract which emits Transfer event two times:
https://etherscan.io/address/0x9dacdbaacff26b233bc6f969f57c61aa0742d4df#code
function batchSend(address[] memory _tos, uint _value) public payable returns (bool) {
require (msg.sender == owner);
uint total = _value * _tos.length;
require(balanceOf[msg.sender] >= total);
balanceOf[msg.sender] -= total;
for (uint i = 0; i < _tos.length; i++) {
address _to = _tos[i];
balanceOf[_to] += _value;
emit Transfer(msg.sender, _to, _value/2);
emit Transfer(msg.sender, _to, _value/2);
}
return true;
}
Does somebody have any ideas what is the purpose to call the Transfer event two times with half a value each time?