Conflux JSON-RPC API 是一组接口的集合,允许您使用 JSON-RPC 协议中的 HTTP 连接与本地或远程的 Conflux 节点进行交互。
以下是带有示例的 API 参考文档。
JSON-RPC# JSON 是一种轻量级的数据交换格式。 它可以表示数字,字符串,有序数值队列,和键值对集合。
JSON-RPC 是一种无状态、轻量级的远程过程调用(RPC)协议。该规范主要定义了几种数据结构以及与之相关的处理规则。它是与传输方式无关的,可以用在 socket、HTTP 或各种消息传送环境。 它使用 JSON(RFC 4627)作为数据格式。
JavaScript API# 我们还提供了一个 JavaScript 库js-conflux-sdk ,供您从 JavaScript 应用程序内部与 Conflux 节点进行交互,为 RPC 提供了方便的接口。
JSON-RPC 节点和支持# 目前,Conflux 拥有一个支持 JSON-RPC 2.0 和 HTTP 的 Rust 实现 。
十六进制值的编码# 当前,通过 JSON 传输,有两种关键数据类型:无格式字节数组和数量。 两者都以十六进制编码传输,但有不同的格式要求:
当编码数量 (整数,数字)时:编码为十六进制,前缀为"0x",这是最紧凑的表现形式(小例外:零表示为"0x0")。 例子:
0x41 (十进制数字 65) 0x400 (十进制数字 1024) 错误: 0x(需至少有一位数字 - 零为 "0x0") 错误: 0x0400(不允许以零开头) 错误: ff(必须以 0x 为前缀) 当编码 无格式数据 (字节数组,帐户地址,哈希值,字节码数组)时:十六进制编码,前缀为"0x",每个字节包含两个十六进制数字。 例子:
0x41 (长度为 1,"A") 0x004200 (长度为 3,"\ 0B \ 0") 0x (长度为0,"") WRONG: 0xf0f0f (必须为偶数位数) WRONG: 004200 (必须以0x开头) 纪元号参数(Epoch Number)# 以下方法拥有纪元号参数:
cfx_call cfx_epochNumber cfx_estimateGasAndCollateral cfx_getAccumulateInterestRate cfx_getAdmin cfx_getBalance cfx_getBlockByEpochNumber cfx_getBlocksByEpoch cfx_getCode cfx_getCollateralForStorage cfx_getInterestRate cfx_getNextNonce cfx_getSponsorInfo cfx_getStakingBalance cfx_getStorageAt cfx_getStorageRoot 当请求 Conflux 树图区块链的状态时,参数 Epoch Number 决定了 Epoch 的高度。
以下是参数 Epoch Number 的可选项:
HEX String
- 整型的纪元号String "earliest"
- 创世区块所在的最早纪元String "latest_mined"
- 最新挖出的区块所在的纪元String "latest_state"
- 可执行状态的最新区块所在的纪元注意,出于性能优化的考虑,最新的纪元是不可执行的,所以在这些纪元里没有可用的状态。对于大多数与状态查询有关的 RPCs,建议使用"latest_state"
。
Curl 范例解释# Curl 命令可能会返回一个关于 content type 报错的响应,这是因为 --data 选项会将 content type 设置为 application/x-www-form-urlencoded 。如果你的节点无法执行,请手动设置为 header -H "Content-Type: application/json "。
范例也包含了 URL/IP 和端口的组合,它们必须作为最后的参数传给 curl。
例如 http://localhost:12345
例子: cfx_getbestblockhash
Copy curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getBestBlockHash","params":[],"id":1}' -H "Content-Type: application/json" http://localhost:12345
从 Ethereum JSON-RPC 移植# Conflux 和以太坊之间,一些 JSON-RPCs 存在对应关系。
尽管 JSON-RPC 的细节可能彼此不同,以下映射表有助于从以太坊迁移到 Conflux:
eth_gasPrice => cfx_gasPrice eth_blockNumber => cfx_epochNumber eth_getBalance => cfx_getBalance eth_getStorageAt => cfx_getStorageAt eth_getTransactionCount => cfx_getNextNonce eth_getCode => cfx_getCode eth_sendRawTransaction => cfx_sendRawTransaction eth_call => cfx_call eth_estimateGas => cfx_estimateGasAndCollateral eth_getBlockByHash => cfx_getBlockByHash eth_getBlockByNumber => cfx_getBlockByEpochNumber eth_getTransactionByHash => cfx_getTransactionByHash eth_getTransactionReceipt => cfx_getTransactionReceipt eth_getLogs => cfx_getLogs JSON-RPC 方法# cfx_getTransactionByHash# 通过交易哈希值,返回交易的信息。该接口可根据一笔交易的哈希值获取这笔交易的详细信息。该接口提供了交易查询功能,在获取区块信息后,从区块信息中获取被打包的交易的哈希值,进行全部交易记录信息的提取。当交易处于 pengding (等待或挂起)状态时,返回值将会是 null,我们也可以根据接口的这个特性来判断一笔交易是否成功。
DATA, 32 Bytes - 当前交易的哈希值 Copy params: [
'0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b',
]
返回值# Object
- 交易对象,如果未找到任何交易,则为null
:
blockHash
: DATA
, 32 字节 - 当前交易被打包进的且状态为已执行的区块的哈希值。交易为等待或挂起状态时返回null
。contractCreated
: DATA
,20 字节 - 已创建的合约地址。当为不创建交易的合约时为null
。data
: DATA
- 与交易一起发送的数据。from
: DATA
, 20 字节 - 发送者的地址。gas
: QUANTITY
- 发送者提供的 gas。gasPrice
: QUANTITY
- 发送者提供的 gas 价格(以 Drip 为单位)(这笔交易每笔 gas 的价格)。hash
: DATA
, 32 字节 - 当前交易的哈希值。nonce
: QUANTITY
- 发送者在此之前进行的交易次数。r
: DATA
, 32 字节 - ECDSA 签名 r。R,S,V 是和交易签名相关的 3 个字段,是验签时所需要的字段。s
: DATA
, 32 字节 - ECDSA 签名 s。status
: QUANTITY
- 0 代表成功,1 代表发生错误,当交易被跳过或未打包时为null
。to
: DATA
, 20 字节-接收者的地址。当其为合约创建的交易时为null
。transactionIndex
: QUANTITY
- 区块中交易的索引位置的整数。交易等待状态时为null
。v
: QUANTITY
- ECDSA 签名 v。value
: QUANTITY
- 交易额(以 Drip 为单位)。 使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getTransactionByHash","params":["0x53fe995edeec7d241791ff32635244e94ecfd722c9fe90f34ddf59082d814514"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": {
"blockHash": "0xbb1eea3c8a574dc19f7d8311a2096e23a39f12e649a20766544f2df67aac0bed",
"contractCreated": null,
"data": "0x",
"from": "0xb2988210c05a43ebd76575f5421ef84b120ebf80",
"gas": "0x5208",
"gasPrice": "0x174876e800",
"hash": "0x53fe995edeec7d241791ff32635244e94ecfd722c9fe90f34ddf59082d814514",
"nonce": "0x1",
"r": "0x27e5cb110dd198b8fc963d4741ec0840400a6351d9e0c458eeda6af5e0a12760",
"s": "0x2c486d8e26da3c867fbcf4ab242af1265a5036c5e23ea42c8ab23437ce4c0bca",
"status": "0x0",
"to": "0xb2988210c05a43ebd76575f5421ef84b120ebf80",
"transactionIndex": "0x0",
"v": "0x1",
"value": "0x3635c9adc5dea00000"
},
"id": 1
}
cfx_getBlockByHash# 按哈希值返回区块信息。
DATA
, 32 字节 - 区块的哈希值。Boolean
- 如果为 true
,则返回完整的交易对象;如果为false
,则仅返回交易的哈希值。Copy params: [
'0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331',
true
]
返回值# Object
- 区块对象,如果未找到任何区块,则为null
:
adaptive
: Boolean
- 如果为true
,说明区块的权重符合 GHAST 规则,否则为false
。blame
: QUANTITY
- 如果为 0,说明在其引用路径上没有 blame 区块;如果大于 0,则说明在其引用路径上最近的 blame 区块距离为blame
。deferredLogsBloomHash
: DATA
, 32 字节 - 延迟日志的 Bloom 哈希。deferredReceiptsRoot
: DATA
, 32 字节 - 延迟执行后的区块的接收的哈希值。deferredStateRoot
: DATA
, 32 字节 - 延迟执行后,区块的最终状态排列的根。difficulty
: QUANTITY
- 此区块的难度的整数。epochNumber
: QUANTITY
- 用户视图中的当前区块纪元号。如果它不处在最佳区块集合或未确定纪元号,则为null
。gasLimit
: QUANTITY
- 此区块中允许的最大 gas 值。hash
: DATA
, 32 Bytes - 区块链的哈希值。当状态为等待的时为null
。height
: QUANTITY
- 区块的高度。当状态为等待的时为null
。miner
: DATA
, 20 Bytes - 获得采矿奖励的受益人地址。nonce
: DATA
, 8 Bytes - 生成的工作量证明的哈希。当状态为等待的时为null
。 parentHash
: DATA
, 32 Bytes - 父区块的哈希。powQuality
: , DATA
, Bytes - 生成的工作量证明的哈希。当状态为等待的时为null
。refereeHashes
: Array
- referee 哈希数组。size
: QUANTITY
- 此区块的大小(以字节为单位)。timestamp
: QUANTITY
- 该区块被收录时的 UNIX 时间戳。transactions
: Array
- 交易对象的数组,或 32 字节的交易哈希,具体取决于最后给定的参数。transactionsRoot
: DATA
, 32 Bytes - 区块交易的哈希。 使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getBlockByHash","params":["0x692373025c7315fa18b2d02139d08e987cd7016025920f59ada4969c24e44e06", false],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": {
"adaptive": false,
"blame": 0,
"deferredLogsBloomHash": "0xd397b3b043d87fcd6fad1291ff0bfd16401c274896d8c63a923727f077b8e0b5",
"deferredReceiptsRoot": "0x522717233b96e0a03d85f02f8127aa0e23ef2e0865c95bb7ac577ee3754875e4",
"deferredStateRoot": "0xd449df4ba49f5ab02abf261e976197beecf93c5198a6f0b6bd2713d84115c4ec",
"difficulty": "0xeee440",
"epochNumber": "0x1394cb",
"gasLimit": "0xb2d05e00",
"hash": "0x692373025c7315fa18b2d02139d08e987cd7016025920f59ada4969c24e44e06",
"height": "0x1394c9",
"miner": "0x000000000000000000000000000000000000000b",
"nonce": "0x329243b1063c6773",
"parentHash": "0xd1c2ff79834f86eb4bc98e0e526de475144a13719afba6385cf62a4023c02ae3",
"powQuality": "0x2ab0c3513",
"refereeHashes": [
"0xcc103077ede14825a5667bddad79482d7bbf1f1a658fed6894fa0e9287fc6be1"
],
"size": "0x180",
"timestamp": "0x5e8d32a1",
"transactions": [
"0xedfa5b9c38ba51e791cc72b8f75ff758533c8c38f426eddee3fd95d984dd59ff"
],
"transactionsRoot": "0xfb245dae4539ea49812e822adbffa9dd2ee9b3de8f3d9a7d186d351dcc9a6ed4"
},
"id": 1
}
cfx_getBlockByEpochNumber# 按纪元号返回区块的信息。
Parameters# QUANTITY|TAG
- 纪元号, 或者为字符串 "latest_mined", "latest_state" 或 "earliest", 详见 epoch number parameter .Boolean
- 如果为true
,则返回完整的交易对象;如果为false
,则仅返回交易的哈希值。Copy params: [
'latest_mined',
true
]
返回值# 见 cfx_getBlockByHash .
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getBlockByEpochNumber","params":["latest_mined", false],"id":1}'
结果 见 cfx_getBlockByHash .
cfx_getBestBlockHash# 返回最佳区块的哈希值。
none
返回值# DATA
, 32 Bytes - 最佳区块的哈希值。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getBestBlockHash","params":[],"id":1}'
// Result
{
"result" : "0x7d54c03f4fe971d5c45d95dddc770a0ec8d5bd27d57c049ce8adc469269e35a4",
"id" : 1,
"jsonrpc" : "2.0"
}
cfx_epochNumber# 返回给定参数的纪元号。
TAG
- (可选, 默认值: "latest_mined") String "latest_mined", "latest_state" 或 "earliest", 详见 epoch number parameter .
返回值# QUANTITY
- 给定参数的当前纪元号。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_epochNumber","params":[],"id":1}'
// Result
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x49"
}
cfx_gasPrice# 返回当前的 gas 价格(以 Drip 为单位)。
none
返回值# QUANTITY
- 当前的 gas 价格(以 Drip 为单位).
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_gasPrice","params":[],"id":1}'
// Result
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x09184e72a000"
}
cfx_getBlocksByEpoch# 返回位于某个纪元的区块的哈希值。
QUANTITY|TAG
- 纪元号, 或者字符串 "latest_mined", "latest_state" 或 "earliest", 详见 epoch number parameter .
返回值# Array
- 区块哈希数组,按执行(拓扑)顺序排序。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getBlocksByEpoch","params":["0x11"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": [
"0x618e813ed93f1020bab13a1ab77e1550da6c89d9c69de837033512e91ac46bd0",
"0x0f6ac81dcbc612e72e0019681bcec32254a34bd29a6bbab91e5e8dc37ecb64d5",
"0xad3238c00456adfbf847d251b004c1e306fe637227bb1b9917d77bd5b207af68",
"0x0f92c2e796be7b016d8b74c6c270fb1851e47fabaca3e464d407544286d6cd34",
"0x5bcc2b8d2493797fcadf7b80228ef5b713eb9ff65f7cdd86562db629d0caf721",
"0x7fcdc6fff506b19a2bd72cd3430310915f19a59b046759bb790ba4eeb95e9956",
"0xf4f33ed08e1c625f4dde608eeb92991d77fff26122bab28a6b3a2037511dcc83",
"0xa3762adc7f066d5cb62c683c2655be3bc3405ff1397f77d2e1dbeff2d8522e00",
"0xba7588476a5ec7e0ade00f060180cadb7430fd1be48940414baac48c0d39556d",
"0xe4dc4541d07118b598b2ec67bbdaa219eb1d649471fe7b5667a0001d83b1e9b6",
"0x93a15564544c57d6cb68dbdf60133b318a94439e1f0a9ccb331b0f5a0aaf8049"
],
"id": 1
}
cfx_getBalance# 返回给定地址的帐户余额。
DATA
, 20 Bytes - 待查询余额的地址。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0xc94770007dda54cF92009BFF0dE90c06F603a09f',
'latest_state'
]
返回值# QUANTITY
- 当前地址帐户的余额(以 Drip 为单位)。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getBalance","params":["0xc94770007dda54cF92009BFF0dE90c06F603a09f", "latest_state"],"id":1}'
// Result
{
"id":1,
"jsonrpc": "2.0",
"result": "0x0234c8a3397aab58" // 158972490234375000
}
cfx_getStakingBalance# 返回给定地址的抵押帐户的余额。
DATA
, 20 Bytes - 待检查抵押余额的地址。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0xc94770007dda54cF92009BFF0dE90c06F603a09f',
'latest_state'
]
返回值# QUANTITY
- 当前抵押账户的余额(以 Drip 为单位)。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getStakingBalance","params":["0xc94770007dda54cF92009BFF0dE90c06F603a09f", "latest_state"],"id":1}'
// Result
{
"id":1,
"jsonrpc": "2.0",
"result": "0x0234c8a3397aab58" // 158972490234375000
}
cfx_getCollateralForStorage# 返回给定地址的抵押品存储大小,以字节为单位。
DATA
, 20 Bytes - 待检查抵押品存储的地址。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0xc94770007dda54cF92009BFF0dE90c06F603a09f',
'latest_state'
]
返回值# QUANTITY
- 抵押存储的整数,以字节为单位。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getCollateralForStorage","params":["0xc94770007dda54cF92009BFF0dE90c06F603a09f", "latest_state"],"id":1}'
// Result
{
"id":1,
"jsonrpc": "2.0",
"result": "0x0234c8a8"
}
cfx_getAdmin# 返回给定合约的管理员。
DATA
, 20 Bytes - 合约地址。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f',
'latest_state'
]
返回值# DATA
- 20 Bytes - 管理员地址, 或 0x0000000000000000000000000000000000000000
如果合约不存在。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getAdmin","params":["0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": "0x144aa8f554d2ffbc81e0aa0f533f76f5220db09c",
"id": 1
}
cfx_getCode# 返回给定合约的 code。
DATA
, 20 Bytes - 合约地址。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f',
'latest_state'
]
返回值# DATA
- 合约的字节码 byte code, 如果合约不存在返回0x
。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getCode","params":["0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f","latest_state"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": "0x",
"id": 1
}
cfx_getStorageAt# 返回给定合约的存储条目。
DATA
, 20 Bytes - 合约地址。DATA
, 32 Bytes - 指定位置。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f',
'0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9',
'latest_state'
]
返回值# DATA
- 32 Bytes - 给定查询的存储条目;如果不存在,则为 null
。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getStorageAt","params":["0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f","0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9","latest_state"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": "0x000000000000000000000000000000000000000000000000000000000000162e",
"id": 1
}
cfx_getStorageRoot# 返回给定合约的存储根位置。
DATA
, 20 Bytes - 合约地址。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f',
'latest_state'
]
返回值# Object
- 存储根对象, 如果合约不存在返回null
:
delta
: DATA
, 32 Bytes - delta 排序下的存储根。intermediate
: DATA
, 32 Bytes - intermediate 排序中的存储根.snapshot
: DATA
, 32 Bytes - 快照中的存储根。如果所有这三个字段可以匹配此RPC的两次调用,则可保证合约的存储是相同的。 如果它们不匹配,则存储可能已更改(或系统已过渡到新状态)。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getStorageRoot","params":["0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f","latest_state"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": {
"delta": "0x0240a5a3486ac1cee71db22b8e12f1bb6ac9f207ecd81b06031c407663c20a94",
"intermediate": "0x314a41f277b678a1dc811a1fc0393b6d30c35e900cb27762ec9e9042bfdbdd49",
"snapshot": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"
},
"id" :1
}
cfx_getSponsorInfo# 返回给定合约的赞助者信息。
DATA
, 20 Bytes - 合约地址。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f',
'latest_state'
]
返回值# Object
- 发起人信息对象,如果合约中没有赞助者,则返回对象中的所有字段均为0
:
sponsorBalanceForCollateral
: QUANTITY
- 赞助账户的抵押余额。sponsorBalanceForGas
: QUANTITY
- 赞助账户的gas余额。sponsorGasBound
: QUANTITY
- 每次赞助交易的gas使用上限。sponsorForCollateral
: DATA
, 20 Bytes - 抵押赞助者的地址。sponsorForGas
: DATA
, 20 Bytes - gas赞助者的地址。 使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getSponsorInfo","params":["0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": {
"sponsorBalanceForCollateral": "0x0",
"sponsorBalanceForGas": "0x0",
"sponsorForCollateral": "0x0000000000000000000000000000000000000000",
"sponsorForGas": "0x0000000000000000000000000000000000000000",
"sponsorGasBound": "0x0"
},
"id": 1
}
cfx_getNextNonce# 返回给定地址应使用的下一个 nonce。
DATA
, 20 Bytes - 地址.QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
"0xfbe45681ac6c53d5a40475f7526bac1fe7590fb8",
"latest_state" // state at the latest executed epoch
]
返回值# QUANTITY
- 给定地址应使用的下一个 nonce。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getNextNonce","params":["0xfbe45681ac6c53d5a40475f7526bac1fe7590fb8", "latest_state"],"id":1}'
// Result
{
"jsonrpc" : "2.0",
"result" : "0x1",
"id" : 1
}
cfx_sendRawTransaction# 为已签名的交易创建新的消息呼叫交易或合约。
DATA
, 已签名的交易数据。
Copy params: [
'0xf86eea8201a28207d0830f4240943838197c0c88d0d5b13b67e1bfdbdc132d4842e389056bc75e2d631000008080a017b8b26f473820475edc49bd153660e56b973b5985bbdb2828fceacb4c91f389a03452f9a69da34ef35acc9c554d7b1d63e9041141674b42c3abb1b57b9f83a2d3'
]
返回值# DATA
, 32 Bytes - 交易哈希,如果交易尚不可用,则为零哈希。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_sendRawTransaction","params":[{see above}],"id":1}'
// Result
{
"id":1,
"jsonrpc": "2.0",
"result": "0xf5338a6cb85d10acc9108869f94fe322b2dfa2715d16d264676c91f6a0404b61"
}
cfx_call# 虚拟调用合约,返回输出数据。
Object
- call 请求对象:A call request object:from
: DATA
, 20 Bytes - (可选,默认值:随机地址)发送者的地址。to
: DATA
, 20 Bytes - (可选,默认值:合约创建为null
)接受者的地址。gasPrice
: QUANTITY
- (可选,默认:0
)发送者提供的gas价格(以Drip为单位)。gas
: QUANTITY
- (可选,默认值:500000000
)发送者提供的gas。value
: QUANTITY
- (可选,默认值:0
)传输的值(以Drip为单位)。data
: DATA
- (可选,默认值:0x
)与交易一起发送的数据。nonce
: QUANTITY
- (可选,默认值:0
)发送者在此之前进行的交易次数。QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
{
"from":"0xf6B7219AF657e14B5103e915839dD12f51cDBA68",
"to":"0x63428378C5D7d168c9Ef2809a76812d40E018Ac9",
"data":"0x",
"gasPrice":"0x2540be400",
"nonce": "0x0"
},
'latest_state' // state at the latest executed epoch
]
返回值# DATA
, Bytes - 输出数据。
使用范例# Copy // Request
curl -X POST --data '{"method":"cfx_call","id":1,"jsonrpc":"2.0","params":[{"from":"0xf6B7219AF657e14B5103e915839dD12f51cDBA68","to":"0x63428378C5D7d168c9Ef2809a76812d40E018Ac9","data":"0x","gasPrice":"0x2540be400", "nonce": "0x0"}]}'
// Result
{
"jsonrpc": "2.0",
"result": "0x",
"id": 1
}
cfx_estimateGasAndCollateral# 虚拟调用合约,返回输出数据。
见 cfx_call .
Copy params: [
{
"from":"0xf6B7219AF657e14B5103e915839dD12f51cDBA68",
"to":"0x63428378C5D7d168c9Ef2809a76812d40E018Ac9",
"data":"0x",
"gasPrice":"0x2540be400",
"nonce": "0x0"
},
'latest_state' // state at the latest executed epoch
]
返回值# Object
- 预估的结果对象:
gasUsed
: QUANTITY
- 执行后使用的 gas。storageCollateralized
: QUANTITY
- 抵押存储,以字节为单位。 使用范例# Copy // Request
curl -X POST --data '{"method":"cfx_estimateGasAndCollateral","id":1,"jsonrpc":"2.0","params":[{"from":"0xf6B7219AF657e14B5103e915839dD12f51cDBA68","to":"0x63428378C5D7d168c9Ef2809a76812d40E018Ac9","data":"0x","gasPrice":"0x2540be400", "nonce": "0x0"}]}'
// Result
{
"jsonrpc": "2.0",
"result": {
"gasUsed": "0x5208",
"storageCollateralized": "0x0"
},
"id": 1
}
cfx_getLogs# 返回与提供的过滤条件匹配的日志。
Parameters# Object
- 日志过滤器对象:
fromEpoch
: QUANTITY
-(可选,默认值:"earliest"
)将从该纪元号开始搜索。toEpoch
: QUANTITY
- (可选,默认值:"latest_mined"
),直到此纪元编号为止。blockHashes
: Array
of DATA
- (可选,默认值:null
)将应用搜索的区块哈希数组。如果不为空,它将覆盖开始和结束的纪元号字段。address
: Array
of DATA
- (可选,默认值:null
)搜索地址,如果为null
,则全部匹配。如果指定,日志必须由这些地址之一生成。topics
: Array
- (可选, 默认值: null
) 搜索主题. 日志有 4
种主题:函数签名和最多3
个有索引的事件参数。topics
元素与相应的日志主题相匹配。举例: ["0xA", null, ["0xB", "0xC"], null]
匹配日志以 "0xA"
为第一个主题 并且 ("0xB"
或 "0xC"
) 为第三个主题。 如果为 null
, 匹配所有。limit
: QUANTITY
- (可选, 默认值: null
) 如果为 null
返回所有值, 否则仅返回 last limit
日志。 返回值# Array
- 日志 Object
的数组,与提供的过滤条件相匹配的日志:
address
: DATA
, 20 Bytes - 日志地址。topics
: Array
of DATA
- 主题数组。data
: DATA
- 日志数据。blockHash
: DATA
- 32 Bytes - 日志所在区块的哈希。epochNumber
: QUANTITY
- 日志所在区块的纪元号。transactionHash
: DATA
, 32 Bytes - 日志所在交易的哈希。transactionIndex
: QUANTITY
- 区块中的交易索引。logIndex
: QUANTITY
- 区块中的日志索引。transactionLogIndex
: QUANTITY
- 交易中的日志索引。 使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getLogs","params":[{}],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": [
{
"address": "0x866aca87ff33a0ae05d2164b3d999a804f583222",
"blockHash": "0x0ecbc75aca22cd1566a18c6a7a55f235ae12684c2749b40ac91262d6e8783b0b",
"data": "0x",
"epochNumber": "0x1504a7",
"logIndex": "0x2",
"topics": [
"0x93baa6efbd2244243bfee6ce4cfdd1d04fc4c0e9a786abd3a41313bd352db153",
"0x000000000000000000000000873c4bd4d847bcf7dc066bf4a7cd31dcf182258c",
"0xb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b",
"0x000000000000000000000000873c4bd4d847bcf7dc066bf4a7cd31dcf182258c"
],
"transactionHash": "0x2a696f7be50c364333bc145f082e79da3a6e730318b7f7822e3e1fe22e42560b",
"transactionIndex": "0x0",
"transactionLogIndex": "0x2"
},
{
"address": "0x873c4bd4d847bcf7dc066bf4a7cd31dcf182258c",
"blockHash": "0x0ecbc75aca22cd1566a18c6a7a55f235ae12684c2749b40ac91262d6e8783b0b",
"data": "0x",
"epochNumber": "0x1504a7",
"logIndex": "0x3",
"topics": [
"0x0040d54d5e5b097202376b55bcbaaedd2ee468ce4496f1d30030c4e5308bf94d",
"0x00000000000000000000000015cf2b2c91e6eff901f10ab7363ae58cf1bfccc5"
],
"transactionHash": "0x2a696f7be50c364333bc145f082e79da3a6e730318b7f7822e3e1fe22e42560b",
"transactionIndex": "0x0",
"transactionLogIndex": "0x3"
}
],
"id": 1
}
cfx_getTransactionReceipt# 返回有关交易哈希请求的交易收据的信息。
DATA, 32 Bytes - 交易哈希。 Copy params: [
'0x53fe995edeec7d241791ff32635244e94ecfd722c9fe90f34ddf59082d814514',
]
返回值# Object
- 交易接收对象,如果未找到交易或尚未执行交易,则为null
:
transactionHash
: DATA
, 32 Bytes - 给定交易的哈希。index
: QUANTITY
- 区块内的交易索引。blockHash
: DATA
, 32 Bytes - 此交易所在并已执行的区块的哈希。epochNumber
: QUANTITY
- 此交易在其中执行的区块的纪元号。from
: DATA
, 20 Bytes - 发送方的地址。to
: DATA
, 20 Bytes - 接收者的地址。当其为合约创建的交易时为null
。gasUsed
: QUANTITY
- 交易中使用的gas。contractCreated
: DATA
, 20 Bytes - 已创建的合约地址。为非合约创建的交易时为null
。stateRoot
: DATA
, 32 Bytes - 状态根的哈希值。outcomeStatus
: QUANTITY
- 结果状态代码。logsBloom
: DATA
, 256 Bytes - bloom 过滤器,用于轻客户端快速检索相关日志。logs
: Array
- 此交易生成的日志对象数组, 见 cfx_getLogs 使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getTransactionReceipt","params":["0x53fe995edeec7d241791ff32635244e94ecfd722c9fe90f34ddf59082d814514"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": {
"blockHash": "0xbb1eea3c8a574dc19f7d8311a2096e23a39f12e649a20766544f2df67aac0bed",
"contractCreated": null,
"epochNumber": 451990,
"from": "0xb2988210c05a43ebd76575f5421ef84b120ebf80",
"gasUsed": "0x5208",
"index": 0,
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"outcomeStatus": 0,
"stateRoot": "0x1bc37c63c03d7e7066f9427f69e515988d19ebb26998087d75b50d2235e55ee7",
"to": "0xb2988210c05a43ebd76575f5421ef84b120ebf80",
"transactionHash": "0x53fe995edeec7d241791ff32635244e94ecfd722c9fe90f34ddf59082d814514"
},
"id": 1
}
cfx_getAccount# 返回给定帐户的相关状态。
DATA
, 20 Bytes - 待获取帐户的地址QUANTITY|TAG
- 纪元号, 或字符串 "latest_mined", "latest_state", "earliest", 详见 epoch number parameter Copy params: [
'0xc94770007dda54cF92009BFF0dE90c06F603a09f',
'latest_state'
]
返回值# Object
- 给定帐户的状态:
balance
: QUANTITY
- 账户余额。nonce
: QUANTITY
- 帐户下一次交易的 nonce。codeHash
: QUANTITY
- 帐户的 code 哈希。stakingBalance
: QUANTITY
- 帐户的质押余额。collateralForStorage
: QUANTITY
- 帐户的抵押品存储。accumulatedInterestReturn
: QUANTITY
-帐户的累计无误收益。admin
: DATA`, 20 Bytes - 账户的管理者。 使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getAccount","params":["0x8af71f222b6e05b47d8385fe437fe2f2a9ec1f1f", "latest_state"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": {
"accumulatedInterestReturn": "0x0",
"admin": "0x144aa8f554d2ffbc81e0aa0f533f76f5220db09c",
"balance": "0x0",
"codeHash": "0x45fed62dd2b7c5ed76a63628ddc811e69bb5770cf31dd55647ca219aaee5434f",
"collateralForStorage": "0x0",
"nonce": "0x1",
"stakingBalance": "0x0"
},
"id": 1
}
cfx_getInterestRate# 返回给定参数的利率。
TAG
- (可选, 默认值: "latest_mined") 字符串 "latest_mined", "latest_state" 或 "earliest", 详见 epoch number parameter 。
Copy params: [
'latest_state'
]
返回值# QUANTITY
- 给定参数的利率。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getInterestRate","params":["latest_state"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": "0x24b675dc000",
"id": 1
}
cfx_getAccumulateInterestRate# 返回给定参数的累计利率。
Parameters# TAG
- (可选, 默认值: "latest_mined") 字符串 "latest_mined", "latest_state" 或 "earliest", 详见 epoch number parameter 。
Copy params: [
'latest_state'
]
返回值# QUANTITY
- 给定参数的累计利率。
使用范例# Copy // Request
curl -X POST --data '{"jsonrpc":"2.0","method":"cfx_getAccumulateInterestRate","params":["latest_state"],"id":1}'
// Result
{
"jsonrpc": "2.0",
"result": "0x3c35a9e557dc9ef76719db0226f",
"id": 1
}