use alloc::vec::Vec;
use risc0_zkvm::ReceiptClaim;
use serde::{Deserialize, Serialize};
use taproot_assets_types::asset::SerializedKey;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReceiptClaimInput {
pub claim: ReceiptClaim,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JoinInput {
pub anchor: ReceiptClaimInput,
pub asset: ReceiptClaimInput,
pub taproot_claims: Vec<ReceiptClaimInput>,
pub stxo_claims: Vec<ReceiptClaimInput>,
pub split_root: Option<ReceiptClaimInput>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct JoinOutput {
pub anchor_txid: [u8; 32],
pub block_hash: [u8; 32],
pub block_height: u32,
pub taproot_output_key: [u8; 32],
pub tap_commitment_root: [u8; 32],
pub tap_commitment_sum: u64,
pub asset_id: [u8; 32],
pub group_key: Option<SerializedKey>,
pub meta_hash: Option<[u8; 32]>,
pub proof_version: u32,
}