'type' 列在以太坊方法 eth_getTransactionByHash 中的含义是什么?
What is column 'type' means at Ethereum method 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. Implementation of this EIP was deployed in April 2021 in the Berlin hardfork (source中添加的Typed transaction envelope。
该字段允许在不向后兼容的情况下使用未来的交易类型。新的不兼容 tx 类型(值 0x01
)的示例在 EIP-2930 中,也部署在柏林硬分叉中。
可能因为它是一个新领域,它还没有(2021 年 6 月)包含在 JSON-RPC documentation. But other documentations, such as ethers.js 中,已经开始涵盖它了。
您可以从 transaction receipt 字段 status
中获取交易状态(如果交易成功或已恢复)。它不包含在您问题中使用的常规 getTransactionByHash
方法中。
请注意,status
未包含在 Byznatium 之前(2017 年 10 月)交易中,并且在未来的某些交易类型中也可能会丢失。
正如标题所说,
我找不到任何包含 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. Implementation of this EIP was deployed in April 2021 in the Berlin hardfork (source中添加的Typed transaction envelope。
该字段允许在不向后兼容的情况下使用未来的交易类型。新的不兼容 tx 类型(值 0x01
)的示例在 EIP-2930 中,也部署在柏林硬分叉中。
可能因为它是一个新领域,它还没有(2021 年 6 月)包含在 JSON-RPC documentation. But other documentations, such as ethers.js 中,已经开始涵盖它了。
您可以从 transaction receipt 字段 status
中获取交易状态(如果交易成功或已恢复)。它不包含在您问题中使用的常规 getTransactionByHash
方法中。
请注意,status
未包含在 Byznatium 之前(2017 年 10 月)交易中,并且在未来的某些交易类型中也可能会丢失。