chia-sdk-driver 0.33.0

Driver code for interacting with standard puzzles on the Chia blockchain.
Documentation
use chia_sdk_types::puzzles::NftMetadataUpdater;

use crate::{DriverError, Spend, SpendContext};

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct MetadataUpdate {
    pub kind: UriKind,
    pub uri: String,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum UriKind {
    Data,
    Metadata,
    License,
}

impl MetadataUpdate {
    pub fn spend(&self, ctx: &mut SpendContext) -> Result<Spend, DriverError> {
        let solution = ctx.alloc(&match self.kind {
            UriKind::Data => ("u", &self.uri),
            UriKind::Metadata => ("mu", &self.uri),
            UriKind::License => ("lu", &self.uri),
        })?;
        Ok(Spend::new(ctx.alloc_mod::<NftMetadataUpdater>()?, solution))
    }
}