JSON RPC 类型
JSON-RPC support
CITA | |
---|---|
JSON-RPC 1.0 | ✓ |
JSON-RPC 2.0 | ✓ |
Batch requests | ✓ |
HTTP | ✓ |
IPC | |
WS | ✓ |
基本类型
Quantity
大整数类型。
作为参数传入时:
0x
开头的十六进制的字符串(仅包含0-9
和a-f
字符)必须为字符串格式,即左右有双引号
不可以为空字符串
不可以
0x
,0
必须写做0x0
(不建议)目前兼容使用大写
0X
开头(不建议)目前兼容使用大写
A-F
字符(不建议)目前兼容十进制字符串(不用
0x
开头且仅含有字符0-9
)(不建议)目前兼容数据高位填充
0
示例:
- (Good)
"0xab5801a7"
- (Bad)
"0Xab5801a7"
- (Bad)
"0xAB5801A7"
- (Bad)
"2874671527"
- (Bad)
"0x0000ab5801a7"
- (Wrong)
0xab5801a7
- (Wrong)
"0x"
- (Wrong)
"ab5801a7"
- (Good)
作为返回值时:
带
0x
前缀紧凑型的十六进制小写字符串
Integer
一般整数类型。
作为参数传入时:
十进制数值
示例:
- (Good)
2874671527
- (Wrong)
"2874671527"
- (Wrong)
"0xab5801a7"
- (Wrong)
0xab5801a7
- (Good)
作为返回值时:
- 十进制数值
Data
不定长二进制数据类型。
作为参数传入时:
0x
开头的十六进制的字符串(仅包含0-9
和a-f
字符)必须为偶数个字符
使用
0x
表示空数据(不建议)目前兼容使用大写
0X
开头(不建议)目前兼容使用大写
A-F
字符示例:
- (Good)
"0x"
- (Bad)
"0Xab5801a7"
- (Bad)
"0xAB5801A7"
- (Wrong)
0xab5801a7
- (Wrong)
"0xab5801a"
- (Wrong)
""
- (Wrong)
"ab5801a7"
- (Good)
作为返回值时:
0x
开头的十六进制的字符串(仅包含0-9
和a-f
字符)
Data20
/ Data32
定长二进制数据。 Data20
为 20 字节, Data32
为 32 字节。
作为参数传入时:
0x
开头的十六进制的定长字符串(仅包含0-9
和a-f
字符)需要补
0
填充完整Data20
有 40 个字符(不包括前缀)Data32
有 64 个字符(不包括前缀)
(不建议)目前兼容使用大写
0X
开头(不建议)目前兼容使用大写
A-F
字符示例:
- (Good)
"0x00000000000000000000000000000000ab5801a7"
- (Bad)
"0X00000000000000000000000000000000ab5801a7"
- (Bad)
"0x00000000000000000000000000000000AB5801A7"
- (Wrong)
"0xab5801a7"
- (Wrong)
0x00000000000000000000000000000000ab5801a7
- (Good)
作为返回值时:
0x
开头的十六进制的定长字符串(仅包含0-9
和a-f
字符)
Boolean
布尔类型, true
或者 false
。
String
字符串类型。
Tag
标签类型,由特定字符串或数字组成的枚举类型。
BlockTag(String)
"earliest"
- 代表链的第一个块, 即创世块"latest"
- 代表pending
块的上一个块,表示当前块的交易列表以及交易执行结果都经过了共识"pending"
- 代表最新出的块,表示当前块的交易列表经过了共识,而交易执行结果尚未经过共识
EconomicalModel(Integer)
0
- Quota 经济模型1
- Charge 经济模型
复合类型
BlockNumber
Quantity | BlockTag
: 通常可以为空,为空时默认值为"latest"
CallRequest
from
:Data20
- 可选 交易发送者地址to
:Data20
交易接收者地址data
:Data
- 可选 调用函数签名哈希值和参数内容, 详细内容请查看 Ethereum Contract ABI
Filter
fromBlock
:BlockNumber
- 可选 起始块高度toBlock
:BlockNumber
- 可选 终止块高度,当toBlock
大于当前链的最大高度时,则终止块高度为当前链的最大高度,即pending
块高address
:Data20 | [Data20]
- 可选 合约地址或者产生日志合约地址的集合topics
:[Data32 | [Data32]]
- 可选 由日志索引(topic)或者多个索引组成的数组集合
Topics
索引数组是顺序相关的, 过滤器通过设置索引数组来过滤交易日志内容, 示例如下:
[]
: 不设置任何索引[A]
:topics
第一个索引是A
, 其余索引无限制[null, B]
:topics
第一个索引没有限制, 第二个索引是B
, 其余索引无限制[A, B]
:topics
第一个索引是A
, 第二个索引是B
, 其余索引无限制[[A, B], [A, B]]
:topics
第一个索引是A
或者B
, 第二个索引是A
或者B
, 其余索引无限制
Block
version
- 块的版本号(默认为0)hash
- 块哈希值header
- 块头部timestamp
- 块内时间戳prevHash
- 前一个块的哈希值number
- 块高(十六进制)stateRoot
- 状态树根transactionsRoot
- 交易树根receiptsRoot
- 回执树根quotaUsed
- 块内消耗的quota
数量proof
BFT
*proposal
- 提议内容哈希值 *height
- 块高(十进制) *round
- 投票轮数 *commits
- 投票人地址和投票内容签名
proposer
- 提议者
body
- 块体transactions
- 交易列表