chia_sdk_driver/primitives/nft/
metadata_update.rs1use 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}