use rgb::validation::{ResolveTx, Validator, Validity, Warning};
use super::Consignment;
impl<const TYPE: bool> Consignment<TYPE> {
pub fn validate<R: ResolveTx>(
mut self,
resolver: &mut R,
) -> Result<Consignment<TYPE>, Consignment<TYPE>> {
let mut status = Validator::validate(&self, resolver);
let validity = status.validity();
if self.transfer != TYPE {
status.add_warning(Warning::Custom(s!("invalid consignment type")));
}
self.validation_status = Some(status);
if validity != Validity::Valid {
Err(self)
} else {
Ok(self)
}
}
}