cfx 命名空间
JSON-RPC规范说明
在GitHub上有一个cfx命名空间的JSON-RPC API规范。 您可以在open-rpc playground中查看它。
惯例
十六进制值编码
有两种关键的数据类型通过 JSON 传递:未格式化的字节数组和数量。 二者都使用十六进制编码传递,但对格式化有不同的要求。
数值
当编码数值(整数,数字)时:使用最紧凑的表示方式编码为十六进制,并加上“0x”前缀。 零应表示为"0x0"。 例如:
0x41(十进制的 65)0x400(十进制的 1024)- 错误样例:
0x(应该至少有一位数字 - 零是“0x0”) - 错误样例:
0x0400(不允许有前导零) - 错误样例::
ff(缺少0x前缀) 
未格式化的数据
当编码未格式化的数据(字节数组、哈希值、字节码数组)时:使用两个十六进制数字表示每个字节,并在前面加上“0x”作为前缀。 例如:
0x41(size 1,"A")0x004200(size 3,"\0B\0")0x(size 0,"")- 错误: 
0xf0f0f(必须是偶数位数)。 - 错误: 
004200(缺少0x前缀)。 
请注意,区块和交易的哈希值是用32个字节来表示的。
Base32 地址
BASE32:Base32 地址应该编码为一个ASCII字符串,包含42个字符加上网络前缀、分隔符和可选字段。 请注意以下关于base32地址作为RPC参数的限制条件:
- 网络前缀应该与节点的网络匹配,例如:
cfx:acc7uawf5ubtnmezvhu9dhc6sghea0403y2dgpyfjp可以发送给主网节点,cfxtest:acc7uawf5ubtnmezvhu9dhc6sghea0403ywjz6wtpg可以发送给测试网节点。 值得注意的是,这两个示例地址对应于不同网络上的同一个账户。 - 无论包含还是省去地址类型都是可以接受的,例如:
cfx:aarc9abycue0hhzgyrr53m6cxedgccrmmyybjgh4xg和cfx:type.user:aarc9abycue0hhzgyrr53m6cxedgccrmmyybjgh4xg是等价的。 但是,类型不正确的地址,例如:cfx:type.contract:aarc9abycue0hhzgyrr53m6cxedgccrmmyybjgh4xg,会被拒绝。 - 全大写或者全小写地址都是可以接受的,例如:
cfx:aarc9abycue0hhzgyrr53m6cxedgccrmmyybjgh4xg和CFX:AARC9ABYCUE0HHZGYRR53M6CXEDGCCRMMYYBJGH4XG都是有效的。 但混合大小写地址会被拒绝。 
为获取更多关于 Base32 地址的信息,请参阅 地址。