pub struct Client { /* private fields */ }
Expand description
Client for NEAR Protocol JSON RPC API
Version: 1.1.0
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(baseurl: &str) -> Self
pub fn new(baseurl: &str) -> Self
Create a new client.
baseurl
is the base URL provided to the internal
reqwest::Client
, and should include a scheme and hostname,
as well as port and a path stem if applicable.
Sourcepub fn new_with_client(baseurl: &str, client: Client) -> Self
pub fn new_with_client(baseurl: &str, client: Client) -> Self
Construct a new client with an existing reqwest::Client
,
allowing more control over its configuration.
baseurl
is the base URL provided to the internal
reqwest::Client
, and should include a scheme and hostname,
as well as port and a path stem if applicable.
Source§impl Client
impl Client
Sourcepub async fn experimental_changes<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalChanges,
) -> Result<ResponseValue<JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError>, Error<()>>
pub async fn experimental_changes<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalChanges, ) -> Result<ResponseValue<JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError>, Error<()>>
Returns changes in block for given block height or hash over all transactions for the current type. Includes changes like account_touched, access_key_touched, data_touched, contract_code_touched
Sends a POST
request to /EXPERIMENTAL_changes
Sourcepub async fn experimental_changes_in_block<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalChangesInBlock,
) -> Result<ResponseValue<JsonRpcResponseForRpcStateChangesInBlockByTypeResponseAndRpcError>, Error<()>>
pub async fn experimental_changes_in_block<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalChangesInBlock, ) -> Result<ResponseValue<JsonRpcResponseForRpcStateChangesInBlockByTypeResponseAndRpcError>, Error<()>>
Returns changes in block for given block height or hash over all transactions for all the types. Includes changes like account_touched, access_key_touched, data_touched, contract_code_touched
Sends a POST
request to /EXPERIMENTAL_changes_in_block
Sourcepub async fn experimental_congestion_level<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalCongestionLevel,
) -> Result<ResponseValue<JsonRpcResponseForRpcCongestionLevelResponseAndRpcError>, Error<()>>
pub async fn experimental_congestion_level<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalCongestionLevel, ) -> Result<ResponseValue<JsonRpcResponseForRpcCongestionLevelResponseAndRpcError>, Error<()>>
Queries the congestion level of a shard. More info about congestion here
Sends a POST
request to /EXPERIMENTAL_congestion_level
Sourcepub async fn experimental_genesis_config<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalGenesisConfig,
) -> Result<ResponseValue<JsonRpcResponseForGenesisConfigAndRpcError>, Error<()>>
pub async fn experimental_genesis_config<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalGenesisConfig, ) -> Result<ResponseValue<JsonRpcResponseForGenesisConfigAndRpcError>, Error<()>>
Get initial state and parameters for the genesis block
Sends a POST
request to /EXPERIMENTAL_genesis_config
Sourcepub async fn experimental_light_client_block_proof<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalLightClientBlockProof,
) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientBlockProofResponseAndRpcError>, Error<()>>
pub async fn experimental_light_client_block_proof<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalLightClientBlockProof, ) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientBlockProofResponseAndRpcError>, Error<()>>
Returns the proofs for a transaction execution.
Sends a POST
request to /EXPERIMENTAL_light_client_block_proof
Sourcepub async fn experimental_light_client_proof<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalLightClientProof,
) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError>, Error<()>>
pub async fn experimental_light_client_proof<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalLightClientProof, ) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError>, Error<()>>
Returns the proofs for a transaction execution.
Sends a POST
request to /EXPERIMENTAL_light_client_proof
Sourcepub async fn experimental_maintenance_windows<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalMaintenanceWindows,
) -> Result<ResponseValue<JsonRpcResponseForArrayOfRangeOfUint64AndRpcError>, Error<()>>
pub async fn experimental_maintenance_windows<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalMaintenanceWindows, ) -> Result<ResponseValue<JsonRpcResponseForArrayOfRangeOfUint64AndRpcError>, Error<()>>
Returns the future windows for maintenance in current epoch for the specified account. In the maintenance windows, the node will not be block producer or chunk producer
Sends a POST
request to /EXPERIMENTAL_maintenance_windows
Sourcepub async fn experimental_protocol_config<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalProtocolConfig,
) -> Result<ResponseValue<JsonRpcResponseForRpcProtocolConfigResponseAndRpcError>, Error<()>>
pub async fn experimental_protocol_config<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalProtocolConfig, ) -> Result<ResponseValue<JsonRpcResponseForRpcProtocolConfigResponseAndRpcError>, Error<()>>
A configuration that defines the protocol-level parameters such as gas/storage costs, limits, feature flags, other settings
Sends a POST
request to /EXPERIMENTAL_protocol_config
Sourcepub async fn experimental_receipt<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalReceipt,
) -> Result<ResponseValue<JsonRpcResponseForRpcReceiptResponseAndRpcError>, Error<()>>
pub async fn experimental_receipt<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalReceipt, ) -> Result<ResponseValue<JsonRpcResponseForRpcReceiptResponseAndRpcError>, Error<()>>
Fetches a receipt by its ID (as is, without a status or execution outcome)
Sends a POST
request to /EXPERIMENTAL_receipt
Sourcepub async fn experimental_split_storage_info<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalSplitStorageInfo,
) -> Result<ResponseValue<JsonRpcResponseForRpcSplitStorageInfoResponseAndRpcError>, Error<()>>
pub async fn experimental_split_storage_info<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalSplitStorageInfo, ) -> Result<ResponseValue<JsonRpcResponseForRpcSplitStorageInfoResponseAndRpcError>, Error<()>>
Contains the split storage information. More info on split storage here
Sends a POST
request to /EXPERIMENTAL_split_storage_info
Sourcepub async fn experimental_tx_status<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalTxStatus,
) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
pub async fn experimental_tx_status<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalTxStatus, ) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
Queries status of a transaction by hash, returning the final transaction result and details of all receipts.
Sends a POST
request to /EXPERIMENTAL_tx_status
Sourcepub async fn experimental_validators_ordered<'a>(
&'a self,
body: &'a JsonRpcRequestForExperimentalValidatorsOrdered,
) -> Result<ResponseValue<JsonRpcResponseForArrayOfValidatorStakeViewAndRpcError>, Error<()>>
pub async fn experimental_validators_ordered<'a>( &'a self, body: &'a JsonRpcRequestForExperimentalValidatorsOrdered, ) -> Result<ResponseValue<JsonRpcResponseForArrayOfValidatorStakeViewAndRpcError>, Error<()>>
Returns the current epoch validators ordered in the block producer order with repetition. This endpoint is solely used for bridge currently and is not intended for other external use cases.
Sends a POST
request to /EXPERIMENTAL_validators_ordered
Sourcepub async fn block<'a>(
&'a self,
body: &'a JsonRpcRequestForBlock,
) -> Result<ResponseValue<JsonRpcResponseForRpcBlockResponseAndRpcError>, Error<()>>
pub async fn block<'a>( &'a self, body: &'a JsonRpcRequestForBlock, ) -> Result<ResponseValue<JsonRpcResponseForRpcBlockResponseAndRpcError>, Error<()>>
Returns block details for given height or hash
Sends a POST
request to /block
Sourcepub async fn broadcast_tx_async<'a>(
&'a self,
body: &'a JsonRpcRequestForBroadcastTxAsync,
) -> Result<ResponseValue<JsonRpcResponseForCryptoHashAndRpcError>, Error<()>>
pub async fn broadcast_tx_async<'a>( &'a self, body: &'a JsonRpcRequestForBroadcastTxAsync, ) -> Result<ResponseValue<JsonRpcResponseForCryptoHashAndRpcError>, Error<()>>
[Deprecated] Sends a transaction and immediately returns transaction hash. Consider using send_tx instead
Sends a POST
request to /broadcast_tx_async
Sourcepub async fn broadcast_tx_commit<'a>(
&'a self,
body: &'a JsonRpcRequestForBroadcastTxCommit,
) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
pub async fn broadcast_tx_commit<'a>( &'a self, body: &'a JsonRpcRequestForBroadcastTxCommit, ) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
[Deprecated] Sends a transaction and waits until transaction is fully complete. (Has a 10 second timeout). Consider using send_tx instead
Sends a POST
request to /broadcast_tx_commit
Sourcepub async fn changes<'a>(
&'a self,
body: &'a JsonRpcRequestForChanges,
) -> Result<ResponseValue<JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError>, Error<()>>
pub async fn changes<'a>( &'a self, body: &'a JsonRpcRequestForChanges, ) -> Result<ResponseValue<JsonRpcResponseForRpcStateChangesInBlockResponseAndRpcError>, Error<()>>
Returns changes in block for given block height or hash over all transactions for the current type. Includes changes like account_touched, access_key_touched, data_touched, contract_code_touched
Sends a POST
request to /changes
Sourcepub async fn chunk<'a>(
&'a self,
body: &'a JsonRpcRequestForChunk,
) -> Result<ResponseValue<JsonRpcResponseForRpcChunkResponseAndRpcError>, Error<()>>
pub async fn chunk<'a>( &'a self, body: &'a JsonRpcRequestForChunk, ) -> Result<ResponseValue<JsonRpcResponseForRpcChunkResponseAndRpcError>, Error<()>>
Returns details of a specific chunk. You can run a block details query to get a valid chunk hash.
Sends a POST
request to /chunk
Sourcepub async fn client_config<'a>(
&'a self,
body: &'a JsonRpcRequestForClientConfig,
) -> Result<ResponseValue<JsonRpcResponseForRpcClientConfigResponseAndRpcError>, Error<()>>
pub async fn client_config<'a>( &'a self, body: &'a JsonRpcRequestForClientConfig, ) -> Result<ResponseValue<JsonRpcResponseForRpcClientConfigResponseAndRpcError>, Error<()>>
Queries client node configuration
Sends a POST
request to /client_config
Sourcepub async fn gas_price<'a>(
&'a self,
body: &'a JsonRpcRequestForGasPrice,
) -> Result<ResponseValue<JsonRpcResponseForRpcGasPriceResponseAndRpcError>, Error<()>>
pub async fn gas_price<'a>( &'a self, body: &'a JsonRpcRequestForGasPrice, ) -> Result<ResponseValue<JsonRpcResponseForRpcGasPriceResponseAndRpcError>, Error<()>>
Returns gas price for a specific block_height or block_hash. Using [null] will return the most recent block’s gas price.
Sends a POST
request to /gas_price
Sourcepub async fn health<'a>(
&'a self,
body: &'a JsonRpcRequestForHealth,
) -> Result<ResponseValue<JsonRpcResponseForNullableRpcHealthResponseAndRpcError>, Error<()>>
pub async fn health<'a>( &'a self, body: &'a JsonRpcRequestForHealth, ) -> Result<ResponseValue<JsonRpcResponseForNullableRpcHealthResponseAndRpcError>, Error<()>>
Returns the current health stauts of the RPC node the client connects to.
Sends a POST
request to /health
Sourcepub async fn light_client_proof<'a>(
&'a self,
body: &'a JsonRpcRequestForLightClientProof,
) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError>, Error<()>>
pub async fn light_client_proof<'a>( &'a self, body: &'a JsonRpcRequestForLightClientProof, ) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientExecutionProofResponseAndRpcError>, Error<()>>
Returns the proofs for a transaction execution.
Sends a POST
request to /light_client_proof
Sourcepub async fn network_info<'a>(
&'a self,
body: &'a JsonRpcRequestForNetworkInfo,
) -> Result<ResponseValue<JsonRpcResponseForRpcNetworkInfoResponseAndRpcError>, Error<()>>
pub async fn network_info<'a>( &'a self, body: &'a JsonRpcRequestForNetworkInfo, ) -> Result<ResponseValue<JsonRpcResponseForRpcNetworkInfoResponseAndRpcError>, Error<()>>
Queries the current state of node network connections. This includes information about active peers, transmitted data, known producers, etc.
Sends a POST
request to /network_info
Sourcepub async fn next_light_client_block<'a>(
&'a self,
body: &'a JsonRpcRequestForNextLightClientBlock,
) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientNextBlockResponseAndRpcError>, Error<()>>
pub async fn next_light_client_block<'a>( &'a self, body: &'a JsonRpcRequestForNextLightClientBlock, ) -> Result<ResponseValue<JsonRpcResponseForRpcLightClientNextBlockResponseAndRpcError>, Error<()>>
Returns the next light client block.
Sends a POST
request to /next_light_client_block
Sourcepub async fn query<'a>(
&'a self,
body: &'a JsonRpcRequestForQuery,
) -> Result<ResponseValue<JsonRpcResponseForRpcQueryResponseAndRpcError>, Error<()>>
pub async fn query<'a>( &'a self, body: &'a JsonRpcRequestForQuery, ) -> Result<ResponseValue<JsonRpcResponseForRpcQueryResponseAndRpcError>, Error<()>>
This module allows you to make generic requests to the network.
The RpcQueryRequest
struct takes in a BlockReference
and a QueryRequest
.
The BlockReference
enum allows you to specify a block by Finality
, BlockId
or SyncCheckpoint
.
The QueryRequest
enum provides multiple variaints for performing the following actions:
- View an account’s details
- View a contract’s code
- View the state of an account
- View the
AccessKey
of an account - View the
AccessKeyList
of an account - Call a function in a contract deployed on the network.
Sends a POST
request to /query
Sourcepub async fn send_tx<'a>(
&'a self,
body: &'a JsonRpcRequestForSendTx,
) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
pub async fn send_tx<'a>( &'a self, body: &'a JsonRpcRequestForSendTx, ) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
Sends transaction. Returns the guaranteed execution status and the results the blockchain can provide at the moment.
Sends a POST
request to /send_tx
Sourcepub async fn status<'a>(
&'a self,
body: &'a JsonRpcRequestForStatus,
) -> Result<ResponseValue<JsonRpcResponseForRpcStatusResponseAndRpcError>, Error<()>>
pub async fn status<'a>( &'a self, body: &'a JsonRpcRequestForStatus, ) -> Result<ResponseValue<JsonRpcResponseForRpcStatusResponseAndRpcError>, Error<()>>
Requests the status of the connected RPC node. This includes information about sync status, nearcore node version, protocol version, the current set of validators, etc.
Sends a POST
request to /status
Sourcepub async fn tx<'a>(
&'a self,
body: &'a JsonRpcRequestForTx,
) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
pub async fn tx<'a>( &'a self, body: &'a JsonRpcRequestForTx, ) -> Result<ResponseValue<JsonRpcResponseForRpcTransactionResponseAndRpcError>, Error<()>>
Queries status of a transaction by hash and returns the final transaction result.
Sends a POST
request to /tx
Sourcepub async fn validators<'a>(
&'a self,
body: &'a JsonRpcRequestForValidators,
) -> Result<ResponseValue<JsonRpcResponseForRpcValidatorResponseAndRpcError>, Error<()>>
pub async fn validators<'a>( &'a self, body: &'a JsonRpcRequestForValidators, ) -> Result<ResponseValue<JsonRpcResponseForRpcValidatorResponseAndRpcError>, Error<()>>
Queries active validators on the network. Returns details and the state of validation on the blockchain.
Sends a POST
request to /validators