Lower-level API for interfacing with the NEAR Protocol via JSONRPC.
near-jsonrpc-client
Lower-level API for interfacing with the NEAR Protocol via JSONRPC.
Usage
Each one of the valid JSON RPC methods are defined in the methods module. For instance, to make a tx request, you start with the tx module and construct a request using the methods::tx::RpcTransactionStatusRequest struct.
use nearjsonrpcclient::{methods, JsonRpcClient};
use nearjsonrpcprimitives::types::transactions::TransactionInfo;
let mainnet_client = JsonRpcClient::connect("https://archival-rpc.mainnet.near.org");
let txstatusrequest = methods::tx::RpcTransactionStatusRequest { transaction_info: TransactionInfo::TransactionId { hash: "9FtHUFBQsZ2MG77K3x3MJ9wjX3UT8zE1TczCrhZEcG8U".parse()?, account_id: "miraclx.near".parse()?, }, };
// call a method on the server via the connected client let txstatus = mainnetclient.call(txstatusrequest).await?;
println!("{:?}", tx_status);
Check out the examples folder for a comprehensive list of helpful demos. You can run the examples with cargo. For example: cargo run --example viewaccount.
Releasing
Versioning and releasing of this crate is automated and managed by custom fork of cargo-workspaces. To publish a new version of this crate, you can do so by bumping the version under the [workspace.metadata.workspaces] section in the package manifest and submit a PR.
We have CI Infrastructure put in place to automate the process of publishing all crates once a version change has merged into master.
However, before you release, make sure the CHANGELOG is up to date and that the [Unreleased] section is present but empty.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as below, without any additional terms or conditions.
License
Licensed under either of
- Apache License, Version 2.0
- MIT license
at your option.