use super::{RuntimeApi, RuntimeApiClient};
use crate::{api::Result, rpc::Request};
use ac_primitives::config::Config;
#[cfg(all(not(feature = "sync-api"), not(feature = "std")))]
use alloc::boxed::Box;
use alloc::{vec, vec::Vec};
use codec::Decode;
#[maybe_async::maybe_async(?Send)]
pub trait AuthorityDiscoveryApi: RuntimeApi {
async fn authorities<AuthorityId: Decode>(
&self,
at_block: Option<Self::Hash>,
) -> Result<Vec<AuthorityId>>;
}
#[maybe_async::maybe_async(?Send)]
impl<T, Client> AuthorityDiscoveryApi for RuntimeApiClient<T, Client>
where
T: Config,
Client: Request,
{
async fn authorities<AuthorityId: Decode>(
&self,
at_block: Option<Self::Hash>,
) -> Result<Vec<AuthorityId>> {
self.runtime_call("AuthorityDiscoveryApi_authorities", vec![], at_block).await
}
}