JSON-RPC 方法

本部分列出以太坊 JSON-RPC 方法,您可以用HTTP的工具来调用

这些方法也被一些 EVM 兼容的网络使用,如:

约定

关于值的编码问题

两种关键数据类型通过 JSON 传递:未格式化的字节数组和数量。 两者都使用十六进制编码传递,但对格式化有不同的要求。

数量

当对数量(整数、编号)进行编码时: 编码为十六进制(以 0x 为前缀),如: 0 应表示为 0x0

1. 以下为正确的示例:

  • 0x41(十进制为 65

  • 0x400(十进制为 1024

2. 以下为错误的示例:

  • 错误:0x (后面至少有一位,00x0)

  • 错误: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 编码,如下所示:

RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])

2. 0x1 解释为访问列表交易,遵循 EIP-2930,其中包含 0x0 的所有参数,增加了 accessList 参数,该参数指定交易计划访问的地址和密钥存储数组(访问列表)。

3. 0x2EIP-1559 交易,以太坊在伦敦分叉中,解决了历史费用市场导致的网络拥堵和交易费用定价过高问题。如用户使用 gasPrice 参数发送指定 Gas 价格出价的交易,矿工会选择出价最高的交易。

EIP-1559 交易不指定 gasPrice,而是使用协议内的、动态变化的 Gas 基本费用。 在每个区块中,调整每 Gas 基本费用以解决网络拥堵。

EIP-1559 交易包含 accessList 参数和除 gasPrice 之外的常规交易参数,使用 maxPriorityFeePerGas 指定发送方愿意为高于基本费用的 Gas 支付的最高费用(每 Gas 的最大优先费用),以及 maxFeePerGas 指定发送人愿意为每 gas 支付的最高总费用(基础费用 + 优先费用)。

最后更新于