use crate::generated::types::AuthorizationData;
use borsh::BorshDeserialize;
use borsh::BorshSerialize;
use solana_program::pubkey::Pubkey;
#[derive(BorshSerialize, BorshDeserialize, Clone, Debug, Eq, PartialEq)]
pub enum DelegateArgs {
CollectionV1 {
authorization_data: Option<AuthorizationData>,
},
SaleV1 {
amount: u64,
authorization_data: Option<AuthorizationData>,
},
TransferV1 {
amount: u64,
authorization_data: Option<AuthorizationData>,
},
DataV1 {
authorization_data: Option<AuthorizationData>,
},
UtilityV1 {
amount: u64,
authorization_data: Option<AuthorizationData>,
},
StakingV1 {
amount: u64,
authorization_data: Option<AuthorizationData>,
},
StandardV1 {
amount: u64,
},
LockedTransferV1 {
amount: u64,
locked_address: Pubkey,
authorization_data: Option<AuthorizationData>,
},
ProgrammableConfigV1 {
authorization_data: Option<AuthorizationData>,
},
AuthorityItemV1 {
authorization_data: Option<AuthorizationData>,
},
DataItemV1 {
authorization_data: Option<AuthorizationData>,
},
CollectionItemV1 {
authorization_data: Option<AuthorizationData>,
},
ProgrammableConfigItemV1 {
authorization_data: Option<AuthorizationData>,
},
}