use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgRound1Request {
pub chain_id: u64,
pub ceremony_id: String,
pub participant_index: u32,
pub threshold: u16,
pub total_participants: u16,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgRound1Response {
pub round1_package: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgRound2Request {
pub chain_id: u64,
pub ceremony_id: String,
pub round1_packages: BTreeMap<String, String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgRound2Response {
pub round2_packages: BTreeMap<String, String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgRound3Request {
pub chain_id: u64,
pub ceremony_id: String,
pub round1_packages: BTreeMap<String, String>,
pub round2_packages: BTreeMap<String, String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgRound3Response {
pub verifying_share_hex: String,
pub share_index: u32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgCancelRequest {
pub chain_id: u64,
pub ceremony_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DkgCancelResponse {
pub cleared: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RefreshRoundRequest {
pub chain_id: u64,
pub ceremony_id: String,
pub epoch_id: u64,
pub threshold: u16,
pub total_participants: u16,
pub participants: BTreeMap<String, String>,
pub mode: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RefreshContribution {
pub operator_index: u32,
pub commitments_hex: Vec<String>,
pub encrypted_shares: BTreeMap<String, String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RefreshApplyRequest {
pub chain_id: u64,
pub ceremony_id: String,
pub epoch_id: u64,
pub contributions: Vec<RefreshContribution>,
pub mode: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RefreshApplyResponse {
pub operator_index: u32,
pub success: bool,
pub new_public_share_hex: Option<String>,
}