use cdk_common::wallet::WalletSaga;
use uuid::Uuid;
use crate::nuts::{BatchMintRequest, Id, PaymentMethod, PreMintSecrets, Proofs};
use crate::wallet::MintQuote;
pub type MintRequestString = crate::nuts::MintRequest<String>;
#[derive(Debug)]
pub struct Initial {
pub operation_id: Uuid,
}
#[derive(Debug)]
pub enum PreparedMintRequest {
Single {
quote_id: String,
quote_info: MintQuote,
request: MintRequestString,
},
Batch {
quote_ids: Vec<String>,
quote_infos: Vec<MintQuote>,
request: BatchMintRequest<String>,
},
}
impl PreparedMintRequest {}
#[derive(Debug)]
pub struct Prepared {
pub operation_id: Uuid,
pub active_keyset_id: Id,
pub premint_secrets: PreMintSecrets,
pub mint_request: PreparedMintRequest,
pub payment_method: PaymentMethod,
pub saga: WalletSaga,
}
#[derive(Debug)]
pub struct Finalized {
pub proofs: Proofs,
}