xrpl-rust 1.1.0

A 100% Rust library to interact with the XRPL
Documentation
use alloc::borrow::Cow;
use embassy_futures::block_on;

use crate::{
    asynch::{
        account::{
            does_account_exist as async_does_account_exist,
            get_account_root as async_get_account_root,
            get_latest_transaction as async_get_latest_transaction,
            get_next_valid_seq_number as async_get_next_valid_seq_number,
            get_xrp_balance as async_get_xrp_balance,
        },
        clients::XRPLClient,
        exceptions::XRPLHelperResult,
    },
    models::{
        ledger::objects::account_root::AccountRoot, results::account_tx::AccountTxVersionMap,
        XRPAmount,
    },
};

pub fn does_account_exist<C>(
    address: Cow<'_, str>,
    client: &C,
    ledger_index: Option<Cow<'_, str>>,
) -> XRPLHelperResult<bool>
where
    C: XRPLClient,
{
    block_on(async_does_account_exist(address, client, ledger_index))
}

pub fn get_next_valid_seq_number<C>(
    address: Cow<'_, str>,
    client: &C,
    ledger_index: Option<Cow<'_, str>>,
) -> XRPLHelperResult<u32>
where
    C: XRPLClient,
{
    block_on(async_get_next_valid_seq_number(
        address,
        client,
        ledger_index,
    ))
}

pub fn get_xrp_balance<'a: 'b, 'b, C>(
    address: Cow<'a, str>,
    client: &'a C,
    ledger_index: Option<Cow<'a, str>>,
) -> XRPLHelperResult<XRPAmount<'b>>
where
    C: XRPLClient,
{
    block_on(async_get_xrp_balance(address, client, ledger_index))
}

pub fn get_account_root<'a: 'b, 'b, C>(
    address: Cow<'a, str>,
    client: &'a C,
    ledger_index: Cow<'a, str>,
) -> XRPLHelperResult<AccountRoot<'b>>
where
    C: XRPLClient,
{
    block_on(async_get_account_root(address, client, ledger_index))
}

pub fn get_latest_transaction<'a: 'b, 'b, C>(
    address: Cow<'a, str>,
    client: &C,
) -> XRPLHelperResult<AccountTxVersionMap<'b>>
where
    C: XRPLClient,
{
    block_on(async_get_latest_transaction(address, client))
}