use crate::core::indexer::NadoIndexer;
use crate::utils::wrapped_option_utils::wrapped_option_u64;
use crate::{build_and_call, nado_builder};
use alloy_primitives::Address;
use eyre::Result;
use crate::indexer;
use crate::indexer::SubaccountsResponse;
nado_builder!(
SubaccountsBuilder,
NadoIndexer,
address: [u8; 20],
start: u64,
limit: u64,
dda: [u8; 20];
build_and_call!(self, query, get_subaccounts => SubaccountsResponse);
pub fn build(&self) -> Result<indexer::Query> {
let address = self.get_address();
Ok(indexer::Query::Subaccounts {
address,
start: wrapped_option_u64(self.start),
limit: wrapped_option_u64(self.limit),
dda: self.dda.map(Address::from),
})
}
fn get_address(&self) -> Option<Address> {
self.address.map(Address::from)
}
);