lit_sdk/admin/
get_key_backup.rs

1use crate::{AdminRequest, AdminResponse, SdkError, SdkResult, UrlPrefix};
2use lit_node_core::AdminAuthSig;
3use serde::{Deserialize, Serialize};
4use std::{collections::HashMap, marker::PhantomData};
5
6/// The parameters to pass for downloading a key backup
7#[derive(Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct GetKeyBackupParameters {
10    /// The admin auth sig
11    pub auth: AdminAuthSig,
12    /// The epoch for which to download the backup
13    pub epoch: u64,
14}
15
16/// The response for getting the key backup
17pub type GetKeyBackupResponse = AdminResponse<()>;
18
19/// The request for getting the key backup
20pub type GetKeyBackupRequest = AdminRequest<GetKeyBackupBuilder, GetKeyBackupParameters, ()>;
21
22admin_builder!(
23    GetKeyBackupBuilder,
24    GetKeyBackupParameters,
25    (),
26    "/web/admin/get_key_backup/v2"
27);
28
29impl GetKeyBackupBuilder {
30    fn request_checks(&self) -> SdkResult<()> {
31        let Some(request) = &self.request else {
32            return Err(SdkError::Build("No auth sig is specified".to_string()));
33        };
34        if request.epoch < 2 {
35            return Err(SdkError::Build("Invalid epoch".to_string()));
36        }
37        Ok(())
38    }
39}