substrate_api_client/api/runtime_api/
session_keys.rsuse super::{RuntimeApi, RuntimeApiClient};
use crate::{api::Result, rpc::Request};
use ac_primitives::config::Config;
#[cfg(not(feature = "sync-api"))]
use alloc::boxed::Box;
use alloc::{vec, vec::Vec};
use codec::Encode;
use sp_core::{crypto::KeyTypeId, Bytes};
#[maybe_async::maybe_async(?Send)]
pub trait SessionKeysApi: RuntimeApi {
type KeyTypeId;
#[allow(clippy::type_complexity)]
async fn decode_session_keys(
&self,
encoded: Bytes,
at_block: Option<Self::Hash>,
) -> Result<Option<Vec<(Bytes, Self::KeyTypeId)>>>;
async fn generate_session_keys(
&self,
seed: Option<Bytes>,
at_block: Option<Self::Hash>,
) -> Result<Bytes>;
}
#[maybe_async::maybe_async(?Send)]
impl<T, Client> SessionKeysApi for RuntimeApiClient<T, Client>
where
T: Config,
Client: Request,
{
type KeyTypeId = KeyTypeId;
async fn decode_session_keys(
&self,
encoded: Bytes,
at_block: Option<Self::Hash>,
) -> Result<Option<Vec<(Bytes, Self::KeyTypeId)>>> {
self.runtime_call("SessionKeys_decode_session_keys", vec![encoded.0], at_block)
.await
}
async fn generate_session_keys(
&self,
seed: Option<Bytes>,
at_block: Option<Self::Hash>,
) -> Result<Bytes> {
self.runtime_call("SessionKeys_generate_session_keys", vec![seed.encode()], at_block)
.await
}
}