anya-core 1.2.0

Enterprise-grade Bitcoin Infrastructure Platform
Documentation
use std::error::Error;
// [BPC-3][BIP-370] PSBTv2 Implementation
impl PsbtV2 {
    pub fn validate(&self) -> Result<(), PsbtError> {
        // Validate global transaction presence
        require!(self.global_tx.is_some(), PsbtError::MissingGlobalTx);
        
        // Validate input/output counts match metadata
        require!(
            self.inputs.len() == self.input_count as usize,
            PsbtError::InputCountMismatch
        );
        require!(
            self.outputs.len() == self.output_count as usize,
            PsbtError::OutputCountMismatch
        );
        
        // Validate version 2 requirement
        require!(self.version == 2, PsbtError::InvalidVersion);
        
        Ok(())
    }
}