nifty_cli/commands/
burn.rs1use super::*;
2
3pub struct BurnArgs {
4 pub keypair_path: Option<PathBuf>,
5 pub rpc_url: Option<String>,
6 pub asset: Pubkey,
7 pub recipient: Option<Pubkey>,
8}
9
10pub fn handle_burn(args: BurnArgs) -> Result<()> {
11 let config = CliConfig::new(args.keypair_path, args.rpc_url)?;
12
13 let signer_sk = config.keypair;
14
15 let signer = signer_sk.pubkey();
16 let asset = args.asset;
17
18 let data = config.client.get_account_data(&args.asset)?;
19 let asset_account = Asset::from_bytes(&data).unwrap();
20
21 let ix = Burn {
22 asset,
23 signer,
24 recipient: args.recipient,
25 group: asset_account.group.to_option(),
26 }
27 .instruction();
28
29 let sig = send_and_confirm_tx(&config.client, &[&signer_sk], &[ix])?;
30
31 println!("Burned asset {asset} in tx: {sig}");
32
33 Ok(())
34}