chia_sdk_driver/primitives/nft/
metadata_update.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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.nft_metadata_updater()?, solution))
    }
}