JSON-RPC Endpoints

JSON-RPC smartBCH

Here is a list of all the supported RPC endpoints of smartBCH, sorted by the prefixes. The endpoints with "sbch" prefix are smartBCH-specific, which are used by the BasicBrowserarrow-up-right. The endpoints with "web3", "net" and "eth" prefixes have the same function as infura, except for some features which are described below.

Web3

Net

ETH

⚠️the 'pending' block number parameterarrow-up-right is not supported, because the mempool of smartbchd is invisable now.

The throughput of smartBCH is very high, and no transactions will be waiting in the mempool for a long time, so there is no need to check whether a transaction is accepted by mempool.

JSON-RPC methods
Doc (eth.wiki)
Doc (infura.io/docs)
Implemented?

eth_subscribe

https://infura.io/docs/ethereum/wss/eth-subscribe

eth_unsubscribe

https://infura.io/docs/ethereum/wss/eth-unsubscribe

Txpool (non-standard)

JSON-RPC methods
Doc
Implemented?

txpool_content

https://geth.ethereum.org/docs/rpc/ns-txpool#txpool_content

✅ (returns empty data)

txpool_status

https://geth.ethereum.org/docs/rpc/ns-txpool#txpool_status

✅ (returns empty data)

txpool_inspect

https://geth.ethereum.org/docs/rpc/ns-txpool#txpool_inspect

✅ (returns empty data)

SBCH

JSON-RPC methods
Doc (eth.wiki)
Doc (infura.io/docs)
Since

sbch_queryTxBySrc

Returns the information about transactions requested by sender address and block range.

Parameters:

  1. DATA, 20 Bytes - from address

  2. QUANTITY - integer, start number

  3. QUANTITY - integer, end number

  4. QUANTITY - integer, the maximal number of txs to return, 0 stands for default limit

Note: the start number can be greater than the end number, if so, the results will be sorted by block height in descending order.

Retrns:

Array - array of transaction objects, see eth_getTransactionByHasharrow-up-right

sbch_queryTxByDst

Returns the information about transactions requested by recipient address and block range.

Parameters:

  1. DATA, 20 Bytes - to address

  2. QUANTITY|TAG - integer of start number, or string "latest" for the last mined block

  3. QUANTITY|TAG - integer of end number, or string "latest" for the last mined block

  4. QUANTITY - integer, the maximal number of txs to return, 0 stands for default limit

Note: the start number can be greater than the end number, if so, the results will be sorted by block height in descending order.

Retrns:

Array - array of transaction objects, see eth_getTransactionByHasharrow-up-right

sbch_queryTxByAddr

Returns the information about transactions requested by address (sender or recipient) and block range.

Parameters:

  1. DATA, 20 Bytes - from or to address

  2. QUANTITY|TAG - integer of start number, or string "latest" for the last mined block

  3. QUANTITY|TAG - integer of end number, or string "latest" for the last mined block

  4. QUANTITY - integer, the maximal number of txs to return, 0 stands for default limit

Note: the start number can be greater than the end number, if so, the results will be sorted by block height in descending order.

Retrns:

Array - array of transaction objects, see eth_getTransactionByHasharrow-up-right

sbch_queryLogs

Query logs by address, topics and block range. It is different from eth_getLogs in:

  1. the contract address is required, not optional;

  2. the topics are position-independent, which means as long as a log has the specified topics in any position, it will be included in the returned result.

Parameters:

  1. DATA, 20 Bytes - contract address

  2. Array of DATA, topics

  3. QUANTITY|TAG - integer of start number, or string "latest" for the last mined block

  4. QUANTITY|TAG - integer of end number, or string "latest" for the last mined block

  5. QUANTITY - integer, the maximal number of txs to return, 0 stands for default limit.

Note: the start number can be greater than the end number, if so, the results will be sorted by block height in descending order.

Returns:

Array - array of log objects, see eth_getLogsarrow-up-right

sbch_getTxListByHeight

Get tx list by height.

Parameters:

  1. QUANTITY|TAG - integer of start number, or string "latest" for the last mined block

Returns:

Array - array of transaction objects, see sbch_getTransactionReceipt

sbch_getTxListByHeightWithRange

Get tx list by height and tx index range.

Parameters:

  1. QUANTITY|TAG - integer of start number, or string "latest" for the last mined block

  2. QUANTITY - integer of start tx index

  3. QUANTITY - integer of end tx index, or "0x0" which stands for "the largest tx index"

Returns:

Array - array of transaction objects, see sbch_getTransactionReceipt

sbch_getAddressCount

Returns the times addr acts as a to-address or from-address of a transaction.

Parameters:

  1. String, kind of the query, could be "from", "to", or "both"

  2. DATA, 20 Bytes - EOA or contract address

Returns:

QUANTITY - integer of count

sbch_getSep20AddressCount

Returns the times addr acts as a to-address or from-address of a SEP20 Transfer event at some contract.

Parameters:

  1. String, kind of the query, could be "from", "to", or "both"

  2. DATA, 20 Bytes - SEP20 contract address

  3. DATA, 20 Bytes - EOA or contract address

Returns:

QUANTITY - integer of count

sbch_getTransactionReceipt

Enhanced version of eth_getTransactionReceiptarrow-up-right, the returned array of objects contain additional information about internal transactions.

Parameters: same as eth_getTransactionReceiptarrow-up-right

Returns: array of objects sepcified by eth_getTransactionReceiptarrow-up-right plus one more field of type Array: internalTransactions.

Each object in internalTransactions array contains the following fields:

  • callPath: string - a string representation of call type, depth and index of internal transaction (e.g. staticcall_0_1_1).

  • from: DATA, 20 Bytes - address of the sender.

  • to: DATA, 20 Bytes - address of the receiver.

  • gas: QUANTITY - gas provided by the sender.

  • value: QUANTITY - value transferred in Wei.

  • input: DATA - the data send along with the internal transaction.

  • status: QUANTITY - either 1 (success) or 0 (failure).

  • gasUsed: QUANTITY - the amount of gas used by this internal transaction.

  • output: DATA - the data returned by the internal transaction.

  • contractAddress: DATA, 20 Bytes - The contract address created, if the transaction was a contract creation, otherwise null.

sbch_validatorsInfo

Returns the validators info.

Parameters: N/A

Returns: a validator info object:

  • genesisMainnetBlockHeight: QUANTITY - The BCH mainnet height when smartbch chain mint genesis block.

  • currEpochNum: QUANTITY - The epoch number of current epoch.

  • validators: Array - Array of validator object, which mean validators created by call stakingContract.createValidator method.

  • validatorsUpdate: Array - Array of validator object, which mean validators whose voting power updated when epoch switch.

  • pendingRewards: Array - Array of pending rewards object, which mean validator pending rewards.

  • minGasPrice: QUANTITY - The minimum gas price decided in current block.

  • lastMinGasPrice: QUANTITY - The minimum gas price used in current block.

  • currValidators: Array - Array of validator object, which mean validators who on duty in current epoch.

And the validator object has fields:

  • address: DATA, 20 Bytes - Address of the validator.

  • pubkey: DATA, 32 Bytes - Consensus pubkey of the validator.

  • reward_to: DATA, 20 Bytes - Address to receive block mint rewards.

  • voting_power: QUANTITY - The minimum gas price decided in current block.

  • introduction: String - The introduction of validator.

  • staked_coins DATA, 32 Bytes - Staked coins of the validator.

  • is_retiring: Boolean - Indicate whether validator is retired.

Last updated

Was this helpful?