事务事件函数名未出现

Transaction event function name does not appear

我编写了一个简单的合约来测试事件,如下代码所示:

pragma solidity ^0.6.12;

contract EventTest {
    address public router;
    event RouterUpdated(address indexed newAddress);
    
    function setRouter(address newAddress) public {
        router = newAddress;
        emit RouterUpdated(newAddress);
    }
}

为什么没有出现交易事件函数名? Check result

它以事件签名的 keccak256 哈希的形式存储在区块链上。

keccak256("RouterUpdated(address)") == 0x7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc80

它没有翻译成原文 RouterUpdated 只是因为 Etherscan 没有将它翻译成人类可读的形式。

由于散列是一种单向函数,这种翻译通常使用字典来完成,其中键是散列,值是输入。

他们在 UI 的某些部分将函数签名转换为函数名称,但出于某种原因,他们选择不将事件签名转换为事件名称。