Fixup docs in sdk to use new clients (#27362)

Fixup client docs in sdk
This commit is contained in:
Tyera Eulberg 2022-08-24 20:29:56 -07:00 committed by GitHub
parent ad6c2d8c5f
commit 1095cdf436
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 128 additions and 128 deletions

View File

@ -13,45 +13,15 @@
#![doc(hidden)] #![doc(hidden)]
#![allow(clippy::new_without_default)] #![allow(clippy::new_without_default)]
pub mod solana_client { pub mod solana_rpc_client {
pub mod client_error {
#[derive(thiserror::Error, Debug)]
#[error("mock-error")]
pub struct ClientError;
pub type Result<T> = std::result::Result<T, ClientError>;
}
pub mod nonce_utils {
use {
super::super::solana_sdk::{
account::ReadableAccount, account_utils::StateMut, pubkey::Pubkey,
},
crate::nonce::state::{Data, DurableNonce, Versions},
};
#[derive(thiserror::Error, Debug)]
#[error("mock-error")]
pub struct Error;
pub fn data_from_account<T: ReadableAccount + StateMut<Versions>>(
_account: &T,
) -> Result<Data, Error> {
Ok(Data::new(
Pubkey::new_unique(),
DurableNonce::default(),
5000,
))
}
}
pub mod rpc_client { pub mod rpc_client {
use { use {
super::{ super::super::{
super::solana_sdk::{ solana_rpc_client_api::client_error::Result as ClientResult,
solana_sdk::{
account::Account, hash::Hash, pubkey::Pubkey, signature::Signature, account::Account, hash::Hash, pubkey::Pubkey, signature::Signature,
transaction::Transaction, transaction::Transaction,
}, },
client_error::Result as ClientResult,
}, },
std::{cell::RefCell, collections::HashMap, rc::Rc}, std::{cell::RefCell, collections::HashMap, rc::Rc},
}; };
@ -106,6 +76,36 @@ pub mod solana_client {
} }
} }
pub mod solana_rpc_client_api {
pub mod client_error {
#[derive(thiserror::Error, Debug)]
#[error("mock-error")]
pub struct ClientError;
pub type Result<T> = std::result::Result<T, ClientError>;
}
}
pub mod solana_rpc_client_nonce_utils {
use {
super::solana_sdk::{account::ReadableAccount, account_utils::StateMut, pubkey::Pubkey},
crate::nonce::state::{Data, DurableNonce, Versions},
};
#[derive(thiserror::Error, Debug)]
#[error("mock-error")]
pub struct Error;
pub fn data_from_account<T: ReadableAccount + StateMut<Versions>>(
_account: &T,
) -> Result<Data, Error> {
Ok(Data::new(
Pubkey::new_unique(),
DurableNonce::default(),
5000,
))
}
}
/// Re-exports and mocks of solana-program modules that mirror those from /// Re-exports and mocks of solana-program modules that mirror those from
/// solana-program. /// solana-program.
/// ///

View File

@ -16,16 +16,16 @@
//! network. Note though that transactions that fail during pre-flight //! network. Note though that transactions that fail during pre-flight
//! simulation are not displayed here. //! simulation are not displayed here.
//! - When submitting transactions via [`RpcClient`], if Rust's own logging is //! - When submitting transactions via [`RpcClient`], if Rust's own logging is
//! active then the `solana_client` crate logs at the "debug" level any logs //! active then the `solana_rpc_client` crate logs at the "debug" level any logs
//! for transactions that failed during simulation. If using [`env_logger`] //! for transactions that failed during simulation. If using [`env_logger`]
//! these logs can be activated by setting `RUST_LOG=solana_client=debug`. //! these logs can be activated by setting `RUST_LOG=solana_rpc_client=debug`.
//! - Logs can be retrieved from a finalized transaction by calling //! - Logs can be retrieved from a finalized transaction by calling
//! [`RpcClient::get_transaction`]. //! [`RpcClient::get_transaction`].
//! - Block explorers may display logs. //! - Block explorers may display logs.
//! //!
//! [`RpcClient`]: https://docs.rs/solana-client/latest/solana_client/rpc_client/struct.RpcClient.html //! [`RpcClient`]: https://docs.rs/solana-rpc-client/latest/solana_rpc_client/rpc_client/struct.RpcClient.html
//! [`env_logger`]: https://docs.rs/env_logger //! [`env_logger`]: https://docs.rs/env_logger
//! [`RpcClient::get_transaction`]: https://docs.rs/solana-client/latest/solana_client/rpc_client/struct.RpcClient.html#method.get_transaction //! [`RpcClient::get_transaction`]: https://docs.rs/solana-rpc-client/latest/solana_rpc_client/rpc_client/struct.RpcClient.html#method.get_transaction
//! //!
//! While most logging functions are defined in this module, [`Pubkey`]s can //! While most logging functions are defined in this module, [`Pubkey`]s can
//! also be efficiently logged with the [`Pubkey::log`] function. //! also be efficiently logged with the [`Pubkey::log`] function.

View File

@ -169,18 +169,18 @@ impl Message {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_sdk`], [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_sdk`], [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_sdk`]: https://docs.rs/solana-sdk /// [`solana_sdk`]: https://docs.rs/solana-sdk
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,
@ -240,18 +240,18 @@ impl Message {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_sdk`], [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_sdk`], [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_sdk`]: https://docs.rs/solana-sdk /// [`solana_sdk`]: https://docs.rs/solana-sdk
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,
@ -336,18 +336,18 @@ impl Message {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_sdk`], [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_sdk`], [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_sdk`]: https://docs.rs/solana-sdk /// [`solana_sdk`]: https://docs.rs/solana-sdk
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// hash::Hash, /// hash::Hash,
/// instruction::Instruction, /// instruction::Instruction,

View File

@ -179,24 +179,24 @@ impl Message {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_address_lookup_table_program`], [`solana_client`], [`solana_sdk`], and [`anyhow`] crates. /// This example uses the [`solana_address_lookup_table_program`], [`solana_rpc_client`], [`solana_sdk`], and [`anyhow`] crates.
/// ///
/// [`solana_address_lookup_table_program`]: https://docs.rs/solana-address-lookup-table-program /// [`solana_address_lookup_table_program`]: https://docs.rs/solana-address-lookup-table-program
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`solana_sdk`]: https://docs.rs/solana-sdk /// [`solana_sdk`]: https://docs.rs/solana-sdk
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::{ /// # use solana_program::example_mocks::{
/// # solana_address_lookup_table_program, /// # solana_address_lookup_table_program,
/// # solana_client, /// # solana_rpc_client,
/// # solana_sdk, /// # solana_sdk,
/// # }; /// # };
/// # use std::borrow::Cow; /// # use std::borrow::Cow;
/// # use solana_sdk::account::Account; /// # use solana_sdk::account::Account;
/// use anyhow::Result; /// use anyhow::Result;
/// use solana_address_lookup_table_program::state::AddressLookupTable; /// use solana_address_lookup_table_program::state::AddressLookupTable;
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// address_lookup_table_account::AddressLookupTableAccount, /// address_lookup_table_account::AddressLookupTableAccount,
/// instruction::{AccountMeta, Instruction}, /// instruction::{AccountMeta, Instruction},

View File

@ -372,7 +372,7 @@ impl Pubkey {
/// ///
/// ``` /// ```
/// # use borsh::{BorshSerialize, BorshDeserialize}; /// # use borsh::{BorshSerialize, BorshDeserialize};
/// # use solana_program::example_mocks::{solana_sdk, solana_client}; /// # use solana_program::example_mocks::{solana_sdk, solana_rpc_client};
/// # use solana_program::{ /// # use solana_program::{
/// # pubkey::Pubkey, /// # pubkey::Pubkey,
/// # instruction::Instruction, /// # instruction::Instruction,
@ -385,7 +385,7 @@ impl Pubkey {
/// # signature::{Signer, Signature}, /// # signature::{Signer, Signature},
/// # transaction::Transaction, /// # transaction::Transaction,
/// # }; /// # };
/// # use solana_client::rpc_client::RpcClient; /// # use solana_rpc_client::rpc_client::RpcClient;
/// # use std::convert::TryFrom; /// # use std::convert::TryFrom;
/// # use anyhow::Result; /// # use anyhow::Result;
/// # /// #

View File

@ -335,10 +335,10 @@ impl Secp256k1Pubkey {
/// The RPC client program: /// The RPC client program:
/// ///
/// ```no_run /// ```no_run
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// use anyhow::Result; /// use anyhow::Result;
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// keccak, /// keccak,

View File

@ -581,8 +581,8 @@ pub fn create_nonce_account_with_seed(
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// # pubkey::Pubkey, /// # pubkey::Pubkey,
/// signature::{Keypair, Signer}, /// signature::{Keypair, Signer},
@ -671,7 +671,7 @@ pub fn create_nonce_account(
/// setting it to a recent blockhash, the value of the nonce must be retreived /// setting it to a recent blockhash, the value of the nonce must be retreived
/// and deserialized from the nonce account, and that value specified as the /// and deserialized from the nonce account, and that value specified as the
/// "recent blockhash". A nonce account can be deserialized with the /// "recent blockhash". A nonce account can be deserialized with the
/// [`solana_client::nonce_utils::data_from_account`][dfa] function. /// [`solana_rpc_client_nonce_utils::data_from_account`][dfa] function.
/// ///
/// For further description of durable transaction nonces see /// For further description of durable transaction nonces see
/// [`create_nonce_account`]. /// [`create_nonce_account`].
@ -679,7 +679,7 @@ pub fn create_nonce_account(
/// [`Message`]: crate::message::Message /// [`Message`]: crate::message::Message
/// [`Message::new_with_nonce`]: crate::message::Message::new_with_nonce /// [`Message::new_with_nonce`]: crate::message::Message::new_with_nonce
/// [`recent_blockhash`]: crate::message::Message::recent_blockhash /// [`recent_blockhash`]: crate::message::Message::recent_blockhash
/// [dfa]: https://docs.rs/solana-client/latest/solana_client/nonce_utils/fn.data_from_account.html /// [dfa]: https://docs.rs/solana-rpc-client-nonce-utils/latest/solana_rpc_client_nonce_utils/fn.data_from_account.html
/// ///
/// # Required signers /// # Required signers
/// ///
@ -691,11 +691,9 @@ pub fn create_nonce_account(
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// use solana_client::{ /// # use solana_program::example_mocks::solana_rpc_client_nonce_utils;
/// rpc_client::RpcClient, /// use solana_rpc_client::rpc_client::RpcClient;
/// nonce_utils,
/// };
/// use solana_sdk::{ /// use solana_sdk::{
/// message::Message, /// message::Message,
/// pubkey::Pubkey, /// pubkey::Pubkey,
@ -751,7 +749,7 @@ pub fn create_nonce_account(
/// # rent_epoch: 1, /// # rent_epoch: 1,
/// # }); /// # });
/// let nonce_account = client.get_account(nonce_account_pubkey)?; /// let nonce_account = client.get_account(nonce_account_pubkey)?;
/// let nonce_data = nonce_utils::data_from_account(&nonce_account)?; /// let nonce_data = solana_rpc_client_nonce_utils::data_from_account(&nonce_account)?;
/// let blockhash = nonce_data.blockhash(); /// let blockhash = nonce_data.blockhash();
/// ///
/// tx.try_sign(&[payer], blockhash)?; /// tx.try_sign(&[payer], blockhash)?;
@ -817,8 +815,8 @@ pub fn advance_nonce_account(nonce_pubkey: &Pubkey, authorized_pubkey: &Pubkey)
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// pubkey::Pubkey, /// pubkey::Pubkey,
/// signature::{Keypair, Signer}, /// signature::{Keypair, Signer},
@ -899,8 +897,8 @@ pub fn withdraw_nonce_account(
/// ///
/// ``` /// ```
/// # use solana_program::example_mocks::solana_sdk; /// # use solana_program::example_mocks::solana_sdk;
/// # use solana_program::example_mocks::solana_client; /// # use solana_program::example_mocks::solana_rpc_client;
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// pubkey::Pubkey, /// pubkey::Pubkey,
/// signature::{Keypair, Signer}, /// signature::{Keypair, Signer},

View File

@ -99,9 +99,9 @@
//! //!
//! ``` //! ```
//! # use solana_program::example_mocks::solana_sdk; //! # use solana_program::example_mocks::solana_sdk;
//! # use solana_program::example_mocks::solana_client; //! # use solana_program::example_mocks::solana_rpc_client;
//! # use solana_sdk::account::Account; //! # use solana_sdk::account::Account;
//! # use solana_client::rpc_client::RpcClient; //! # use solana_rpc_client::rpc_client::RpcClient;
//! # use solana_sdk::sysvar::clock::{self, Clock}; //! # use solana_sdk::sysvar::clock::{self, Clock};
//! # use anyhow::Result; //! # use anyhow::Result;
//! # //! #

View File

@ -99,9 +99,9 @@
//! //!
//! ``` //! ```
//! # use solana_program::example_mocks::solana_sdk; //! # use solana_program::example_mocks::solana_sdk;
//! # use solana_program::example_mocks::solana_client; //! # use solana_program::example_mocks::solana_rpc_client;
//! # use solana_sdk::account::Account; //! # use solana_sdk::account::Account;
//! # use solana_client::rpc_client::RpcClient; //! # use solana_rpc_client::rpc_client::RpcClient;
//! # use solana_sdk::sysvar::epoch_schedule::{self, EpochSchedule}; //! # use solana_sdk::sysvar::epoch_schedule::{self, EpochSchedule};
//! # use anyhow::Result; //! # use anyhow::Result;
//! # //! #

View File

@ -100,9 +100,9 @@
//! //!
//! ``` //! ```
//! # use solana_program::example_mocks::solana_sdk; //! # use solana_program::example_mocks::solana_sdk;
//! # use solana_program::example_mocks::solana_client; //! # use solana_program::example_mocks::solana_rpc_client;
//! # use solana_sdk::account::Account; //! # use solana_sdk::account::Account;
//! # use solana_client::rpc_client::RpcClient; //! # use solana_rpc_client::rpc_client::RpcClient;
//! # use solana_sdk::sysvar::rent::{self, Rent}; //! # use solana_sdk::sysvar::rent::{self, Rent};
//! # use anyhow::Result; //! # use anyhow::Result;
//! # //! #

View File

@ -18,9 +18,9 @@
//! //!
//! ``` //! ```
//! # use solana_program::example_mocks::solana_sdk; //! # use solana_program::example_mocks::solana_sdk;
//! # use solana_program::example_mocks::solana_client; //! # use solana_program::example_mocks::solana_rpc_client;
//! # use solana_sdk::account::Account; //! # use solana_sdk::account::Account;
//! # use solana_client::rpc_client::RpcClient; //! # use solana_rpc_client::rpc_client::RpcClient;
//! # use solana_sdk::sysvar::slot_hashes::{self, SlotHashes}; //! # use solana_sdk::sysvar::slot_hashes::{self, SlotHashes};
//! # use anyhow::Result; //! # use anyhow::Result;
//! # //! #

View File

@ -18,9 +18,9 @@
//! //!
//! ``` //! ```
//! # use solana_program::example_mocks::solana_sdk; //! # use solana_program::example_mocks::solana_sdk;
//! # use solana_program::example_mocks::solana_client; //! # use solana_program::example_mocks::solana_rpc_client;
//! # use solana_sdk::account::Account; //! # use solana_sdk::account::Account;
//! # use solana_client::rpc_client::RpcClient; //! # use solana_rpc_client::rpc_client::RpcClient;
//! # use solana_sdk::sysvar::slot_history::{self, SlotHistory}; //! # use solana_sdk::sysvar::slot_history::{self, SlotHistory};
//! # use anyhow::Result; //! # use anyhow::Result;
//! # //! #

View File

@ -18,9 +18,9 @@
//! //!
//! ``` //! ```
//! # use solana_program::example_mocks::solana_sdk; //! # use solana_program::example_mocks::solana_sdk;
//! # use solana_program::example_mocks::solana_client; //! # use solana_program::example_mocks::solana_rpc_client;
//! # use solana_sdk::account::Account; //! # use solana_sdk::account::Account;
//! # use solana_client::rpc_client::RpcClient; //! # use solana_rpc_client::rpc_client::RpcClient;
//! # use solana_sdk::sysvar::stake_history::{self, StakeHistory}; //! # use solana_sdk::sysvar::stake_history::{self, StakeHistory};
//! # use anyhow::Result; //! # use anyhow::Result;
//! # //! #

View File

@ -13,19 +13,10 @@
#![doc(hidden)] #![doc(hidden)]
#![cfg(feature = "full")] #![cfg(feature = "full")]
pub mod solana_client { pub mod solana_rpc_client {
pub mod client_error {
use thiserror::Error;
#[derive(Error, Debug)]
#[error("mock-error")]
pub struct ClientError;
pub type Result<T> = std::result::Result<T, ClientError>;
}
pub mod rpc_client { pub mod rpc_client {
use { use {
super::client_error::Result as ClientResult, super::super::solana_rpc_client_api::client_error::Result as ClientResult,
crate::{hash::Hash, signature::Signature, transaction::Transaction}, crate::{hash::Hash, signature::Signature, transaction::Transaction},
}; };
@ -47,3 +38,14 @@ pub mod solana_client {
} }
} }
} }
pub mod solana_rpc_client_api {
pub mod client_error {
use thiserror::Error;
#[derive(Error, Debug)]
#[error("mock-error")]
pub struct ClientError;
pub type Result<T> = std::result::Result<T, ClientError>;
}
}

View File

@ -417,9 +417,9 @@
//! The client program: //! The client program:
//! //!
//! ```no_run //! ```no_run
//! # use solana_sdk::example_mocks::solana_client; //! # use solana_sdk::example_mocks::solana_rpc_client;
//! use anyhow::Result; //! use anyhow::Result;
//! use solana_client::rpc_client::RpcClient; //! use solana_rpc_client::rpc_client::RpcClient;
//! use solana_sdk::{ //! use solana_sdk::{
//! instruction::{AccountMeta, Instruction}, //! instruction::{AccountMeta, Instruction},
//! secp256k1_instruction, //! secp256k1_instruction,
@ -633,9 +633,9 @@
//! The client program: //! The client program:
//! //!
//! ```no_run //! ```no_run
//! # use solana_sdk::example_mocks::solana_client; //! # use solana_sdk::example_mocks::solana_rpc_client;
//! use anyhow::Result; //! use anyhow::Result;
//! use solana_client::rpc_client::RpcClient; //! use solana_rpc_client::rpc_client::RpcClient;
//! use solana_sdk::{ //! use solana_sdk::{
//! instruction::{AccountMeta, Instruction}, //! instruction::{AccountMeta, Instruction},
//! keccak, //! keccak,

View File

@ -42,21 +42,21 @@
//! transaction nonce]_ mechanism instead of a recent blockhash to ensure unique //! transaction nonce]_ mechanism instead of a recent blockhash to ensure unique
//! transactions. //! transactions.
//! //!
//! [`RpcClient::get_latest_blockhash`]: https://docs.rs/solana-client/latest/solana_client/rpc_client/struct.RpcClient.html#method.get_latest_blockhash //! [`RpcClient::get_latest_blockhash`]: https://docs.rs/solana-rpc-client/latest/solana_rpc_client/rpc_client/struct.RpcClient.html#method.get_latest_blockhash
//! [durable transaction nonce]: https://docs.solana.com/implemented-proposals/durable-tx-nonces //! [durable transaction nonce]: https://docs.solana.com/implemented-proposals/durable-tx-nonces
//! //!
//! # Examples //! # Examples
//! //!
//! This example uses the [`solana_client`] and [`anyhow`] crates. //! This example uses the [`solana_rpc_client`] and [`anyhow`] crates.
//! //!
//! [`solana_client`]: https://docs.rs/solana-client //! [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
//! [`anyhow`]: https://docs.rs/anyhow //! [`anyhow`]: https://docs.rs/anyhow
//! //!
//! ``` //! ```
//! # use solana_sdk::example_mocks::solana_client; //! # use solana_sdk::example_mocks::solana_rpc_client;
//! use anyhow::Result; //! use anyhow::Result;
//! use borsh::{BorshSerialize, BorshDeserialize}; //! use borsh::{BorshSerialize, BorshDeserialize};
//! use solana_client::rpc_client::RpcClient; //! use solana_rpc_client::rpc_client::RpcClient;
//! use solana_sdk::{ //! use solana_sdk::{
//! instruction::Instruction, //! instruction::Instruction,
//! message::Message, //! message::Message,
@ -206,16 +206,16 @@ impl Transaction {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_sdk::example_mocks::solana_client; /// # use solana_sdk::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,
@ -285,16 +285,16 @@ impl Transaction {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_sdk::example_mocks::solana_client; /// # use solana_sdk::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,
@ -364,16 +364,16 @@ impl Transaction {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_sdk::example_mocks::solana_client; /// # use solana_sdk::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,
@ -440,16 +440,16 @@ impl Transaction {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_sdk::example_mocks::solana_client; /// # use solana_sdk::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,
@ -648,16 +648,16 @@ impl Transaction {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_sdk::example_mocks::solana_client; /// # use solana_sdk::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,
@ -789,16 +789,16 @@ impl Transaction {
/// ///
/// # Examples /// # Examples
/// ///
/// This example uses the [`solana_client`] and [`anyhow`] crates. /// This example uses the [`solana_rpc_client`] and [`anyhow`] crates.
/// ///
/// [`solana_client`]: https://docs.rs/solana-client /// [`solana_rpc_client`]: https://docs.rs/solana-rpc-client
/// [`anyhow`]: https://docs.rs/anyhow /// [`anyhow`]: https://docs.rs/anyhow
/// ///
/// ``` /// ```
/// # use solana_sdk::example_mocks::solana_client; /// # use solana_sdk::example_mocks::solana_rpc_client;
/// use anyhow::Result; /// use anyhow::Result;
/// use borsh::{BorshSerialize, BorshDeserialize}; /// use borsh::{BorshSerialize, BorshDeserialize};
/// use solana_client::rpc_client::RpcClient; /// use solana_rpc_client::rpc_client::RpcClient;
/// use solana_sdk::{ /// use solana_sdk::{
/// instruction::Instruction, /// instruction::Instruction,
/// message::Message, /// message::Message,