如果您在 etherscan 上访问此交易页面,请向下滚动到Input Data部分并单击Decode Input Data按钮 - 它什么也没给您,我只能假设这意味着 etherscan 无法解码给定 ABI 的输入数据合同。
我的问题是,为什么?该合约/ABI(或任何类似这样的合约)有什么特别之处,会阻止交易被解码?
如果您在 etherscan 上访问此交易页面,请向下滚动到Input Data部分并单击Decode Input Data按钮 - 它什么也没给您,我只能假设这意味着 etherscan 无法解码给定 ABI 的输入数据合同。
我的问题是,为什么?该合约/ABI(或任何类似这样的合约)有什么特别之处,会阻止交易被解码?
被调用的函数签名是0xfaa916d3
,其余数据是参数。合约 ABI 没有定义任何可以转换为0xfaa916d3
签名的函数。这意味着调用了回退函数。
在这种情况下,回退函数充当代理,创建内部交易并将调用委托给目标合约(理论上可以做同样的事情或创建多个其他内部交易等)
但是,Etherscan 目前仅将签名与根交易接收者的 ABI 进行比较,而在“解码输入数据”功能中忽略了内部交易接收者的 ABI。
为什么?我的猜测是只扫描一个级别更容易,而不是实现和考虑所有边缘情况(例如具有相同签名的多个内部调用)的高优先级。但是你需要问他们真正的原因。:)