shadow_drive_cli/command/nft/creator_group/
mod.rs

1use clap::Parser;
2use shadow_drive_sdk::{Pubkey, Signer};
3
4pub(crate) mod get;
5pub(crate) mod init;
6
7#[derive(Debug, Parser)]
8pub enum CreatorGroupCommand {
9    /// Initialize a creator group
10    Init,
11
12    /// Retrieve and print an onchain CreatorGroup account
13    Get { creator_group: Pubkey },
14}
15
16impl CreatorGroupCommand {
17    pub async fn process(&self, signer: &impl Signer, rpc_url: &str) -> anyhow::Result<()> {
18        match self {
19            // Initialize a creator group
20            CreatorGroupCommand::Init => init::process(signer, rpc_url)
21                .await
22                .map(|_creator_group_initialized| {}),
23
24            CreatorGroupCommand::Get { creator_group } => {
25                get::process(creator_group, rpc_url).await
26            }
27        }
28    }
29}