chik-sdk-driver 0.25.0

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

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

#[derive(Debug, Clone, PartialEq, Eq)]
pub enum MetadataUpdate {
    NewDataUri(String),
    NewMetadataUri(String),
    NewLicenseUri(String),
}

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