nifty_cli/commands/
transfer.rs

1use nifty_asset::instructions::Transfer;
2
3use super::*;
4
5pub struct TransferArgs {
6    pub keypair_path: Option<PathBuf>,
7    pub rpc_url: Option<String>,
8    pub asset: Pubkey,
9    pub recipient: Pubkey,
10}
11
12pub fn handle_transfer(args: TransferArgs) -> Result<()> {
13    let config = CliConfig::new(args.keypair_path, args.rpc_url)?;
14
15    let signer_sk = config.keypair;
16
17    let signer = signer_sk.pubkey();
18    let asset = args.asset;
19    let recipient = args.recipient;
20
21    let ix = Transfer {
22        asset,
23        signer,
24        recipient,
25        group: None,
26    }
27    .instruction();
28
29    let sig = send_and_confirm_tx(&config.client, &[&signer_sk], &[ix])?;
30
31    println!("Transferring asset {asset} to {recipient} in tx: {sig}");
32
33    Ok(())
34}