Struct Client

Source
pub struct Client { /* private fields */ }
Expand description

Client for NEAR Protocol JSON RPC API

Version: 1.1.0

Implementations§

Source§

impl Client

Source

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.

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Trait Implementations§

Source§

impl ClientHooks for &Client

Source§

async fn pre<E>( &self, request: &mut Request, info: &OperationInfo, ) -> Result<(), Error<E>>

Runs prior to the execution of the request. This may be used to modify the request before it is transmitted.
Source§

async fn post<E>( &self, result: &Result<Response, Error>, info: &OperationInfo, ) -> Result<(), Error<E>>

Runs after completion of the request.
Source§

async fn exec( &self, request: Request, info: &OperationInfo, ) -> Result<Response, Error>

Execute the request. Note that for almost any reasonable implementation this will include code equivalent to this: Read more
Source§

impl ClientInfo<()> for Client

Source§

fn api_version() -> &'static str

Get the version of this API. Read more
Source§

fn baseurl(&self) -> &str

Get the base URL to which requests are made.
Source§

fn client(&self) -> &Client

Get the internal reqwest::Client used to make requests.
Source§

fn inner(&self) -> &()

Get the inner value of type T if one is specified.
Source§

impl Clone for Client

Source§

fn clone(&self) -> Client

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Client

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,