在以太坊方法 eth_getTransactionByHash 中,列“类型”是什么意思?

问题描述

正如标题所说, 我找不到任何包含 type 列描述的文档, 并且不知道值的意思。 有人有想法吗?

{
    "jsonrpc":"2.0","id":1,"result":{
        "blockHash":"0xf64a12502afc36db3d29931a2148e5d6ddaa883a2a3c968ca2fb293fa9258c68","blockNumber":"0x70839","from":"0x0000000000000000000000000000000000000000","gas":"0x30d40","gasPrice":"0xba43b7400","hash":"0x1e2910a262b1008d0616a0beb24c1a491d78771baa54a33e66065e03b1f46bc1","input":"0xfc36e15b0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a4861636b65726e65777300000000000000000000000000000000000000000000","nonce":"0xa7","to":"0x03fca6077d38dd99d0ce14ba32078bd2cda72d74","transactionIndex":"0x0","value":"0x0","type":"0x0",// <- here
        "v":"0x1c","r":"0xe7ccdba116aa95ae8d9bdd02f619a0cdfc1f60c5740b3899865822a80cd70218","s":"0xf200df1921ea988d16280a0873b69cb782a54e8a596d15e700710c820c8d2a9e"
    }
}

这里还有一个问题, 如上结果,我如何知道交易已完成或失败?

解决方法

这是在 EIP-2718 中添加的 Typed 交易信封。此 EIP 的实施于 2021 年 4 月在柏林硬分叉 (source) 中部署。

该字段允许在不向后兼容的情况下使用未来的交易类型。新的不兼容 tx 类型(值 0x01)的一个例子是在 EIP-2930 中,也部署在柏林硬分叉中。

可能是因为它是一个新字段,它尚未(2021 年 6 月)包含在 JSON-RPC documentation 中。但其他文档,例如 ethers.js,已经开始涵盖它。


您可以从 transaction receipt 字段 status 获取交易状态(如果成功或已恢复)。它不包含在您的问题中使用的常规 getTransactionByHash 方法中。

请注意,status 不包含在拜占庭时代之前(2017 年 10 月)的交易中,并且在未来的某些交易类型中也可能会丢失。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...