1use crate::common::{EncryptedMulticastRequest, EndpointRequest, Response, UrlPrefix};
2use crate::{SdkError, SdkResult};
3use lit_node_core::{
4 request::JsonPKPSigningRequest,
5 response::{GenericResponse, JsonPKPSigningResponse},
6};
7use std::{collections::HashMap, marker::PhantomData};
8use uuid::Uuid;
9
10pub type PKPSigningResponse = Response<GenericResponse<JsonPKPSigningResponse>>;
12
13pub type PKPSigningRequest = EncryptedMulticastRequest<
15 PKPSigningRequestBuilder,
16 JsonPKPSigningRequest,
17 GenericResponse<JsonPKPSigningResponse>,
18>;
19
20encrypted_multicast_builder!(
21 PKPSigningRequestBuilder,
22 JsonPKPSigningRequest,
23 GenericResponse<JsonPKPSigningResponse>,
24 "/web/pkp/sign/v2"
25);
26
27impl PKPSigningRequestBuilder {
28 fn request_checks(&self) -> SdkResult<()> {
30 let Some(node_set) = &self.node_set else {
31 return Ok(());
32 };
33 for (i, endpoint) in node_set.iter().enumerate() {
34 if endpoint.body.pubkey.is_empty() {
35 return Err(SdkError::Build(format!(
36 "No pubkey is specified at '{}'",
37 i + 1
38 )));
39 }
40 }
41 Ok(())
42 }
43}