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 BasicBrowser. The endpoints with "web3", "net" and "eth" prefixes have the same function as infura, except for some features which are described below.
| JSON-RPC methods | Doc (eth.wiki) | Doc (infura.io/docs) | Implemented? |
|---|---|---|---|
| web3_clientVersion | https://eth.wiki/json-rpc/API#web3_clientVersion | https://infura.io/docs/ethereum/json-rpc/web3-clientVersion | ✅ |
| web3_sha3 | https://eth.wiki/json-rpc/API#web3_sha3 | ✅ |
| JSON-RPC methods | Doc (eth.wiki) | Doc (infura.io/docs) | Implemented? |
|---|---|---|---|
| net_version | https://eth.wiki/json-rpc/API#net_version | https://infura.io/docs/ethereum/json-rpc/net-version | ✅ |
| net_peerCount | https://eth.wiki/json-rpc/API#net_peercount | https://infura.io/docs/ethereum/json-rpc/net-peerCount | ❌ |
| net_listening | https://eth.wiki/json-rpc/API#net_listening | https://infura.io/docs/ethereum/json-rpc/net-listening | ❌ |
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 | 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) |
| JSON-RPC methods | Doc (eth.wiki) | Doc (infura.io/docs) | Since |
|---|---|---|---|
| sbch_queryTxBySrc | N/A | N/A | v0.1.0 |
| sbch_queryTxByDst | N/A | N/A | v0.1.0 |
| sbch_queryTxByAddr | N/A | N/A | v0.1.0 |
| sbch_queryLogs | N/A | N/A | v0.1.0 |
| sbch_getTxListByHeight | N/A | N/A | v0.1.0 |
| sbch_getTxListByHeightWithRange | N/A | N/A | v0.1.0 |
| sbch_getAddressCount | N/A | N/A | v0.1.0 |
| sbch_getSep20AddressCount | N/A | N/A | v0.2.0 |
| sbch_getTransactionReceipt | N/A | N/A | v0.4.0 |
| sbch_validatorsInfo | N/A | N/A | V0.4.1 |
Returns the information about transactions requested by sender address and block range.
Parameters:
DATA, 20 Bytes - from addressQUANTITY- integer, start numberQUANTITY- integer, end numberQUANTITY- integer, the maximal number of txs to return,0stands 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_getTransactionByHash
Returns the information about transactions requested by recipient address and block range.
Parameters:
DATA, 20 Bytes - to addressQUANTITY|TAG- integer of start number, or string"latest"for the last mined blockQUANTITY|TAG- integer of end number, or string"latest"for the last mined blockQUANTITY- integer, the maximal number of txs to return,0stands 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_getTransactionByHash
Returns the information about transactions requested by address (sender or recipient) and block range.
Parameters:
DATA, 20 Bytes - from or to addressQUANTITY|TAG- integer of start number, or string"latest"for the last mined blockQUANTITY|TAG- integer of end number, or string"latest"for the last mined blockQUANTITY- integer, the maximal number of txs to return,0stands 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_getTransactionByHash
Query logs by address, topics and block range. It is different from eth_getLogs in:
- the contract address is required, not optional;
- 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:
DATA, 20 Bytes - contract addressArray of DATA, topicsQUANTITY|TAG- integer of start number, or string"latest"for the last mined blockQUANTITY|TAG- integer of end number, or string"latest"for the last mined blockQUANTITY- integer, the maximal number of txs to return,0stands 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_getLogs
Get tx list by height.
Parameters:
QUANTITY|TAG- integer of start number, or string"latest"for the last mined block
Returns:
Array - array of transaction objects, see sbch_getTransactionReceipt
Get tx list by height and tx index range.
Parameters:
QUANTITY|TAG- integer of start number, or string"latest"for the last mined blockQUANTITY- integer of start tx indexQUANTITY- integer of end tx index, or "0x0" which stands for "the largest tx index"
Returns:
Array - array of transaction objects, see sbch_getTransactionReceipt
Returns the times addr acts as a to-address or from-address of a transaction.
Parameters:
String, kind of the query, could be"from","to", or"both"DATA, 20 Bytes - EOA or contract address
Returns:
QUANTITY - integer of count
Returns the times addr acts as a to-address or from-address of a SEP20 Transfer event at some contract.
Parameters:
String, kind of the query, could be"from","to", or"both"DATA, 20 Bytes - SEP20 contract addressDATA, 20 Bytes - EOA or contract address
Returns:
QUANTITY - integer of count
Enhanced version of eth_getTransactionReceipt, the returned array of objects contain additional information about internal transactions.
Parameters: same as eth_getTransactionReceipt
Returns: array of objects sepcified by eth_getTransactionReceipt 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- either1(success) or0(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, otherwisenull.
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 callstakingContract.createValidatormethod. - 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.