chia_sdk_driver/primitives/nft/
metadata_update.rs

1use chia_sdk_types::puzzles::NftMetadataUpdater;
2
3use crate::{DriverError, Spend, SpendContext};
4
5#[derive(Debug, Clone, PartialEq, Eq)]
6pub enum MetadataUpdate {
7    NewDataUri(String),
8    NewMetadataUri(String),
9    NewLicenseUri(String),
10}
11
12impl MetadataUpdate {
13    pub fn spend(&self, ctx: &mut SpendContext) -> Result<Spend, DriverError> {
14        let solution = ctx.alloc(&match self {
15            Self::NewDataUri(uri) => ("u", uri),
16            Self::NewMetadataUri(uri) => ("mu", uri),
17            Self::NewLicenseUri(uri) => ("lu", uri),
18        })?;
19        Ok(Spend::new(ctx.alloc_mod::<NftMetadataUpdater>()?, solution))
20    }
21}