JSON-RPC 方法
本部分列出以太坊 JSON-RPC 方法,您可以用HTTP的工具来调用。
这些方法也被一些 EVM 兼容的网络使用,如:
Tron Network (不支持交易)
约定
关于值的编码问题
两种关键数据类型通过 JSON 传递:未格式化的字节数组和数量。 两者都使用十六进制编码传递,但对格式化有不同的要求。
数量
当对数量(整数、编号)进行编码时: 编码为十六进制(以 0x
为前缀),如: 0
应表示为 0x0
。
1. 以下为正确的示例:
0x41
(十进制为65
)0x400
(十进制为1024
)
2. 以下为错误的示例:
错误:
0x
(后面至少有一位,0
是0x0
)错误:
0x0400
(不允许有前导零)错误:
ff
(必须有前缀0x
)
数据
当对无格式数据(字节数组、帐户地址、哈希、字节码数组)进行编码时:
编码为十六进制。
以
0x
为前缀。每字节两个十六进制数字。
1. 以下为正确的示例:
0x
(解析为空数据)0x00
(解析为单个0
字节)0x41
(解析为65
)0x004200
(解析为16896
)
2. 以下为错误的示例:
错误:
0xf0f0f
(位数必须是偶数)错误:
004200
(必须有前缀0x
)
默认块号参数
当发出以太坊的请求时,最后一个默认块号参数决定了区块的高度。
默认区块参数可以使用以下选项:
HEX
- 十六进制整数字符,如:0x670a46
。earliest
- 表示最早/创世区块。latest
- 最新挖出的区块。pending
- 表示未交易状态/等待交易的区块。
交易类型 Transaction Type
1. 0x0
解释为旧的交易,也称常规交易,遵循 EIP-2718。以太坊最初有一种交易形式,每笔交易都包含 [nonce、gasPrice、gasLimit,to,value,data,v,r,s]
。这些字段采用 RLP 编码,如下所示:
2. 0x1
解释为访问列表交易,遵循 EIP-2930,其中包含 0x0
的所有参数,增加了 accessList
参数,该参数指定交易计划访问的地址和密钥存储数组(访问列表)。
3. 0x2
为 EIP-1559 交易,以太坊在伦敦分叉中,解决了历史费用市场导致的网络拥堵和交易费用定价过高问题。如用户使用 gasPrice 参数发送指定 Gas 价格出价的交易,矿工会选择出价最高的交易。
EIP-1559 交易不指定 gasPrice,而是使用协议内的、动态变化的 Gas 基本费用。 在每个区块中,调整每 Gas 基本费用以解决网络拥堵。
EIP-1559 交易包含 accessList 参数和除 gasPrice 之外的常规交易参数,使用 maxPriorityFeePerGas 指定发送方愿意为高于基本费用的 Gas 支付的最高费用(每 Gas 的最大优先费用),以及 maxFeePerGas 指定发送人愿意为每 gas 支付的最高总费用(基础费用 + 优先费用)。
最后更新于