关于交易字段内容的问题

如果交易的data字段为空,就是转eth的交易,如果不为空就要分两种情况,1情况是to字段是eoa地址的话,那data字段的数据就是链上记录的数据,没有执行的效果,2情况是to字段是合约地址的话,那data字段就是要执行的合约的方法和参数的hash值是吗? 但是给合约地址发送铭文怎么确定呢,我执行了一下会失败,比如这个铭文

0x646174613a2c7b2270223a226173632d3230222c226f70223a227472616e73666572222c227469636b223a2262756c6c222c22616d74223a22393230227d
data:,{"p":"asc-20","op":"transfer","tick":"bull","amt":"920"}

我理解是这个合约执行 0x64617461这个方法,但是合约里面没有这个方法是不是就报错?还是说可以像给eoa地址一样,这些数据不用来执行,

但是官方的一个调用合约的交易却是成功的 https://subnets.avax.network/en/c-chain/tx/0x4d5fc14f7d9cd88ceb79ed20b66f72dc13e6e14565c323f3e46e2cf0d406f3d4 什么原因呢?

请先 登录 后评论

最佳答案 2024-01-01 11:24

发送到 eoa , 数据是不会执行的。

发送到合约,作为前4个字节会作为函数去执行, 如果没有这个函数的话,会回退到执行 fallback 函数, 如果没有 fallback 函数则会失败。

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,1012 浏览
  • 孙三胖 提出于 2023-12-29 18:32