nado-sdk 0.3.5

Official Rust SDK for the Nado Protocol API
Documentation
use eyre::Result;

use crate::core::indexer::NadoIndexer;
use crate::indexer;
use crate::indexer::AccountSnapshotsResponse;
use crate::serialize_utils::{WrappedBytes32, WrappedU64};
use crate::utils::client_error::none_error;
use crate::{build_and_call, fields_to_vars, nado_builder};

nado_builder!(
    AccountSnapshotsBuilder,
    NadoIndexer,
    subaccounts: Vec<[u8; 32]>,
    timestamps: Vec<u64>,
    isolated: bool,
    active: bool;

    build_and_call!(self, query, get_account_snapshots => AccountSnapshotsResponse);

    pub fn build(&self) -> Result<indexer::Query> {
        fields_to_vars!(self, (subaccounts: clone), (timestamps: clone));
        let subaccounts = subaccounts.into_iter().map(WrappedBytes32).collect();
        let timestamps = timestamps.into_iter().map(WrappedU64).collect();
        Ok(indexer::Query::AccountSnapshots{
            subaccounts,
            timestamps,
            isolated: self.isolated,
            active: self.active,
        })
    }

);