Function safecoin_client::nonblocking::nonce_utils::state_from_account
source · pub fn state_from_account<T: ReadableAccount + StateMut<Versions>>(
account: &T
) -> Result<State, Error>
Expand description
Deserialize the state of a durable transaction nonce account.
Errors
Returns an error if the account is not owned by the system program or contains no data.
Examples
Determine if a nonce account is initialized:
use safecoin_client::nonblocking::{
rpc_client::RpcClient,
nonce_utils,
};
use solana_sdk::{
nonce::State,
pubkey::Pubkey,
};
use anyhow::Result;
futures::executor::block_on(async {
async fn is_nonce_initialized(
client: &RpcClient,
nonce_account_pubkey: &Pubkey,
) -> Result<bool> {
// Sign the tx with nonce_account's `blockhash` instead of the
// network's latest blockhash.
let nonce_account = client.get_account(nonce_account_pubkey).await?;
let nonce_state = nonce_utils::state_from_account(&nonce_account)?;
Ok(!matches!(nonce_state, State::Uninitialized))
}