我正在尝试从LOG3获取事件数据,但这些数据有时在stack5上,有时在stack6上,有人能帮上忙吗?
例如,传输量=两个传输函数中的1,请看一下
。
event Transfer(address indexed from, address indexed to, uint256 value);
function transfer1(address to, uint tokens) public returns (bool success) {
emit Transfer(msg.sender, to, tokens);
return true;
}
function transfer2() public returns (bool success){
uint256 amount = 1;
emit Transfer(msg.sender, msg.sender, amount);
return true;
}的LOG3结构日志第5位
"0x0000000000000000000000000000000000000000000000000000000000000080","0x0000000000000000000000000000000000000000000000000000000000000020","0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4","0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4","0x0000000000000000000000000000000000000000000000000000000000000001","0x000000000000000000000000000000000000000000000000000000000000004e","0x000000000000000000000000000000000000000000000000000000002e687de1“
的LOG3结构日志第6位置
"0x0000000000000000000000000000000000000000000000000000000000000080","0x0000000000000000000000000000000000000000000000000000000000000020","0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4","0x000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000001","0x000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c","0x000000000000000000000000000000000000000000000000000000000000006a","0x00000000000000000000000000000000000000000000000000000000a9059cbb“
我怎么知道该做什么?谢谢。
发布于 2022-04-25 13:35:11
好的,我想我现在理解你的问题了,这不是一个坚实的问题,在我看来,你似乎误解了这两个执行点的堆栈。
LOG3操作码(通常是LOGX )从堆栈中获取以下输入:
因此,在这一点上,只有堆栈中的前5个槽与您相关,其他任何内容都适用于执行的其余部分,但与LOGX操作码无关。
您将在内存偏移:偏移+长度中找到其余的数据(即值),实际上,在这两种情况下,值1都是按32个字节编码的。
索引参数放置在主题部分,其中非索引参数放置在数据部分,因此主题部分(堆栈3和4)中包括from和to,而写入数据部分的只有value,这就是为什么内存长度仅为0x20 (只有一个ABI编码参数)。
我希望这能回答你的问题。
https://ethereum.stackexchange.com/questions/126817
复制相似问题