|
@@ -1,483 +0,0 @@
|
|
|
-//! This code was AUTOGENERATED using the codama library.
|
|
|
-//! Please DO NOT EDIT THIS FILE, instead use visitors
|
|
|
-//! to add features, then rerun codama to update it.
|
|
|
-//!
|
|
|
-//! <https://github.com/codama-idl/codama>
|
|
|
-//!
|
|
|
-
|
|
|
-use borsh::BorshDeserialize;
|
|
|
-use borsh::BorshSerialize;
|
|
|
-
|
|
|
-/// Accounts.
|
|
|
-#[derive(Debug)]
|
|
|
-pub struct SetupExtraMetas {
|
|
|
- pub authority: solana_program::pubkey::Pubkey,
|
|
|
-
|
|
|
- pub config: solana_program::pubkey::Pubkey,
|
|
|
-
|
|
|
- pub mint: solana_program::pubkey::Pubkey,
|
|
|
-
|
|
|
- pub extra_metas: solana_program::pubkey::Pubkey,
|
|
|
-
|
|
|
- pub system_program: solana_program::pubkey::Pubkey,
|
|
|
-}
|
|
|
-
|
|
|
-impl SetupExtraMetas {
|
|
|
- pub fn instruction(
|
|
|
- &self,
|
|
|
- args: SetupExtraMetasInstructionArgs,
|
|
|
- ) -> solana_program::instruction::Instruction {
|
|
|
- self.instruction_with_remaining_accounts(args, &[])
|
|
|
- }
|
|
|
- #[allow(clippy::arithmetic_side_effects)]
|
|
|
- #[allow(clippy::vec_init_then_push)]
|
|
|
- pub fn instruction_with_remaining_accounts(
|
|
|
- &self,
|
|
|
- args: SetupExtraMetasInstructionArgs,
|
|
|
- remaining_accounts: &[solana_program::instruction::AccountMeta],
|
|
|
- ) -> solana_program::instruction::Instruction {
|
|
|
- let mut accounts = Vec::with_capacity(5 + remaining_accounts.len());
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new(
|
|
|
- self.authority,
|
|
|
- true,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new_readonly(
|
|
|
- self.config,
|
|
|
- false,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new_readonly(
|
|
|
- self.mint, false,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new(
|
|
|
- self.extra_metas,
|
|
|
- false,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new_readonly(
|
|
|
- self.system_program,
|
|
|
- false,
|
|
|
- ));
|
|
|
- accounts.extend_from_slice(remaining_accounts);
|
|
|
- let mut data = borsh::to_vec(&SetupExtraMetasInstructionData::new()).unwrap();
|
|
|
- let mut args = borsh::to_vec(&args).unwrap();
|
|
|
- data.append(&mut args);
|
|
|
-
|
|
|
- solana_program::instruction::Instruction {
|
|
|
- program_id: crate::BLOCK_LIST_ID,
|
|
|
- accounts,
|
|
|
- data,
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-#[derive(BorshSerialize, BorshDeserialize, Clone, Debug, Eq, PartialEq)]
|
|
|
-#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
|
|
|
-pub struct SetupExtraMetasInstructionData {
|
|
|
- discriminator: u8,
|
|
|
-}
|
|
|
-
|
|
|
-impl SetupExtraMetasInstructionData {
|
|
|
- pub fn new() -> Self {
|
|
|
- Self { discriminator: 106 }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-impl Default for SetupExtraMetasInstructionData {
|
|
|
- fn default() -> Self {
|
|
|
- Self::new()
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-#[derive(BorshSerialize, BorshDeserialize, Clone, Debug, Eq, PartialEq)]
|
|
|
-#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
|
|
|
-pub struct SetupExtraMetasInstructionArgs {
|
|
|
- pub check_both_wallets: bool,
|
|
|
-}
|
|
|
-
|
|
|
-/// Instruction builder for `SetupExtraMetas`.
|
|
|
-///
|
|
|
-/// ### Accounts:
|
|
|
-///
|
|
|
-/// 0. `[writable, signer]` authority
|
|
|
-/// 1. `[]` config
|
|
|
-/// 2. `[]` mint
|
|
|
-/// 3. `[writable]` extra_metas
|
|
|
-/// 4. `[optional]` system_program (default to `11111111111111111111111111111111`)
|
|
|
-#[derive(Clone, Debug, Default)]
|
|
|
-pub struct SetupExtraMetasBuilder {
|
|
|
- authority: Option<solana_program::pubkey::Pubkey>,
|
|
|
- config: Option<solana_program::pubkey::Pubkey>,
|
|
|
- mint: Option<solana_program::pubkey::Pubkey>,
|
|
|
- extra_metas: Option<solana_program::pubkey::Pubkey>,
|
|
|
- system_program: Option<solana_program::pubkey::Pubkey>,
|
|
|
- check_both_wallets: Option<bool>,
|
|
|
- __remaining_accounts: Vec<solana_program::instruction::AccountMeta>,
|
|
|
-}
|
|
|
-
|
|
|
-impl SetupExtraMetasBuilder {
|
|
|
- pub fn new() -> Self {
|
|
|
- Self::default()
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn authority(&mut self, authority: solana_program::pubkey::Pubkey) -> &mut Self {
|
|
|
- self.authority = Some(authority);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn config(&mut self, config: solana_program::pubkey::Pubkey) -> &mut Self {
|
|
|
- self.config = Some(config);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn mint(&mut self, mint: solana_program::pubkey::Pubkey) -> &mut Self {
|
|
|
- self.mint = Some(mint);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn extra_metas(&mut self, extra_metas: solana_program::pubkey::Pubkey) -> &mut Self {
|
|
|
- self.extra_metas = Some(extra_metas);
|
|
|
- self
|
|
|
- }
|
|
|
- /// `[optional account, default to '11111111111111111111111111111111']`
|
|
|
- #[inline(always)]
|
|
|
- pub fn system_program(&mut self, system_program: solana_program::pubkey::Pubkey) -> &mut Self {
|
|
|
- self.system_program = Some(system_program);
|
|
|
- self
|
|
|
- }
|
|
|
- /// `[optional argument, defaults to 'false']`
|
|
|
- #[inline(always)]
|
|
|
- pub fn check_both_wallets(&mut self, check_both_wallets: bool) -> &mut Self {
|
|
|
- self.check_both_wallets = Some(check_both_wallets);
|
|
|
- self
|
|
|
- }
|
|
|
- /// Add an additional account to the instruction.
|
|
|
- #[inline(always)]
|
|
|
- pub fn add_remaining_account(
|
|
|
- &mut self,
|
|
|
- account: solana_program::instruction::AccountMeta,
|
|
|
- ) -> &mut Self {
|
|
|
- self.__remaining_accounts.push(account);
|
|
|
- self
|
|
|
- }
|
|
|
- /// Add additional accounts to the instruction.
|
|
|
- #[inline(always)]
|
|
|
- pub fn add_remaining_accounts(
|
|
|
- &mut self,
|
|
|
- accounts: &[solana_program::instruction::AccountMeta],
|
|
|
- ) -> &mut Self {
|
|
|
- self.__remaining_accounts.extend_from_slice(accounts);
|
|
|
- self
|
|
|
- }
|
|
|
- #[allow(clippy::clone_on_copy)]
|
|
|
- pub fn instruction(&self) -> solana_program::instruction::Instruction {
|
|
|
- let accounts = SetupExtraMetas {
|
|
|
- authority: self.authority.expect("authority is not set"),
|
|
|
- config: self.config.expect("config is not set"),
|
|
|
- mint: self.mint.expect("mint is not set"),
|
|
|
- extra_metas: self.extra_metas.expect("extra_metas is not set"),
|
|
|
- system_program: self
|
|
|
- .system_program
|
|
|
- .unwrap_or(solana_program::pubkey!("11111111111111111111111111111111")),
|
|
|
- };
|
|
|
- let args = SetupExtraMetasInstructionArgs {
|
|
|
- check_both_wallets: self.check_both_wallets.clone().unwrap_or(false),
|
|
|
- };
|
|
|
-
|
|
|
- accounts.instruction_with_remaining_accounts(args, &self.__remaining_accounts)
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/// `setup_extra_metas` CPI accounts.
|
|
|
-pub struct SetupExtraMetasCpiAccounts<'a, 'b> {
|
|
|
- pub authority: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub config: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub mint: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub extra_metas: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub system_program: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-}
|
|
|
-
|
|
|
-/// `setup_extra_metas` CPI instruction.
|
|
|
-pub struct SetupExtraMetasCpi<'a, 'b> {
|
|
|
- /// The program to invoke.
|
|
|
- pub __program: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub authority: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub config: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub mint: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub extra_metas: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
-
|
|
|
- pub system_program: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- /// The arguments for the instruction.
|
|
|
- pub __args: SetupExtraMetasInstructionArgs,
|
|
|
-}
|
|
|
-
|
|
|
-impl<'a, 'b> SetupExtraMetasCpi<'a, 'b> {
|
|
|
- pub fn new(
|
|
|
- program: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- accounts: SetupExtraMetasCpiAccounts<'a, 'b>,
|
|
|
- args: SetupExtraMetasInstructionArgs,
|
|
|
- ) -> Self {
|
|
|
- Self {
|
|
|
- __program: program,
|
|
|
- authority: accounts.authority,
|
|
|
- config: accounts.config,
|
|
|
- mint: accounts.mint,
|
|
|
- extra_metas: accounts.extra_metas,
|
|
|
- system_program: accounts.system_program,
|
|
|
- __args: args,
|
|
|
- }
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn invoke(&self) -> solana_program::entrypoint::ProgramResult {
|
|
|
- self.invoke_signed_with_remaining_accounts(&[], &[])
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn invoke_with_remaining_accounts(
|
|
|
- &self,
|
|
|
- remaining_accounts: &[(
|
|
|
- &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- bool,
|
|
|
- bool,
|
|
|
- )],
|
|
|
- ) -> solana_program::entrypoint::ProgramResult {
|
|
|
- self.invoke_signed_with_remaining_accounts(&[], remaining_accounts)
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn invoke_signed(
|
|
|
- &self,
|
|
|
- signers_seeds: &[&[&[u8]]],
|
|
|
- ) -> solana_program::entrypoint::ProgramResult {
|
|
|
- self.invoke_signed_with_remaining_accounts(signers_seeds, &[])
|
|
|
- }
|
|
|
- #[allow(clippy::arithmetic_side_effects)]
|
|
|
- #[allow(clippy::clone_on_copy)]
|
|
|
- #[allow(clippy::vec_init_then_push)]
|
|
|
- pub fn invoke_signed_with_remaining_accounts(
|
|
|
- &self,
|
|
|
- signers_seeds: &[&[&[u8]]],
|
|
|
- remaining_accounts: &[(
|
|
|
- &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- bool,
|
|
|
- bool,
|
|
|
- )],
|
|
|
- ) -> solana_program::entrypoint::ProgramResult {
|
|
|
- let mut accounts = Vec::with_capacity(5 + remaining_accounts.len());
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new(
|
|
|
- *self.authority.key,
|
|
|
- true,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new_readonly(
|
|
|
- *self.config.key,
|
|
|
- false,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new_readonly(
|
|
|
- *self.mint.key,
|
|
|
- false,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new(
|
|
|
- *self.extra_metas.key,
|
|
|
- false,
|
|
|
- ));
|
|
|
- accounts.push(solana_program::instruction::AccountMeta::new_readonly(
|
|
|
- *self.system_program.key,
|
|
|
- false,
|
|
|
- ));
|
|
|
- remaining_accounts.iter().for_each(|remaining_account| {
|
|
|
- accounts.push(solana_program::instruction::AccountMeta {
|
|
|
- pubkey: *remaining_account.0.key,
|
|
|
- is_signer: remaining_account.1,
|
|
|
- is_writable: remaining_account.2,
|
|
|
- })
|
|
|
- });
|
|
|
- let mut data = borsh::to_vec(&SetupExtraMetasInstructionData::new()).unwrap();
|
|
|
- let mut args = borsh::to_vec(&self.__args).unwrap();
|
|
|
- data.append(&mut args);
|
|
|
-
|
|
|
- let instruction = solana_program::instruction::Instruction {
|
|
|
- program_id: crate::BLOCK_LIST_ID,
|
|
|
- accounts,
|
|
|
- data,
|
|
|
- };
|
|
|
- let mut account_infos = Vec::with_capacity(6 + remaining_accounts.len());
|
|
|
- account_infos.push(self.__program.clone());
|
|
|
- account_infos.push(self.authority.clone());
|
|
|
- account_infos.push(self.config.clone());
|
|
|
- account_infos.push(self.mint.clone());
|
|
|
- account_infos.push(self.extra_metas.clone());
|
|
|
- account_infos.push(self.system_program.clone());
|
|
|
- remaining_accounts
|
|
|
- .iter()
|
|
|
- .for_each(|remaining_account| account_infos.push(remaining_account.0.clone()));
|
|
|
-
|
|
|
- if signers_seeds.is_empty() {
|
|
|
- solana_program::program::invoke(&instruction, &account_infos)
|
|
|
- } else {
|
|
|
- solana_program::program::invoke_signed(&instruction, &account_infos, signers_seeds)
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/// Instruction builder for `SetupExtraMetas` via CPI.
|
|
|
-///
|
|
|
-/// ### Accounts:
|
|
|
-///
|
|
|
-/// 0. `[writable, signer]` authority
|
|
|
-/// 1. `[]` config
|
|
|
-/// 2. `[]` mint
|
|
|
-/// 3. `[writable]` extra_metas
|
|
|
-/// 4. `[]` system_program
|
|
|
-#[derive(Clone, Debug)]
|
|
|
-pub struct SetupExtraMetasCpiBuilder<'a, 'b> {
|
|
|
- instruction: Box<SetupExtraMetasCpiBuilderInstruction<'a, 'b>>,
|
|
|
-}
|
|
|
-
|
|
|
-impl<'a, 'b> SetupExtraMetasCpiBuilder<'a, 'b> {
|
|
|
- pub fn new(program: &'b solana_program::account_info::AccountInfo<'a>) -> Self {
|
|
|
- let instruction = Box::new(SetupExtraMetasCpiBuilderInstruction {
|
|
|
- __program: program,
|
|
|
- authority: None,
|
|
|
- config: None,
|
|
|
- mint: None,
|
|
|
- extra_metas: None,
|
|
|
- system_program: None,
|
|
|
- check_both_wallets: None,
|
|
|
- __remaining_accounts: Vec::new(),
|
|
|
- });
|
|
|
- Self { instruction }
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn authority(
|
|
|
- &mut self,
|
|
|
- authority: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- ) -> &mut Self {
|
|
|
- self.instruction.authority = Some(authority);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn config(
|
|
|
- &mut self,
|
|
|
- config: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- ) -> &mut Self {
|
|
|
- self.instruction.config = Some(config);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn mint(&mut self, mint: &'b solana_program::account_info::AccountInfo<'a>) -> &mut Self {
|
|
|
- self.instruction.mint = Some(mint);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn extra_metas(
|
|
|
- &mut self,
|
|
|
- extra_metas: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- ) -> &mut Self {
|
|
|
- self.instruction.extra_metas = Some(extra_metas);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn system_program(
|
|
|
- &mut self,
|
|
|
- system_program: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- ) -> &mut Self {
|
|
|
- self.instruction.system_program = Some(system_program);
|
|
|
- self
|
|
|
- }
|
|
|
- /// `[optional argument, defaults to 'false']`
|
|
|
- #[inline(always)]
|
|
|
- pub fn check_both_wallets(&mut self, check_both_wallets: bool) -> &mut Self {
|
|
|
- self.instruction.check_both_wallets = Some(check_both_wallets);
|
|
|
- self
|
|
|
- }
|
|
|
- /// Add an additional account to the instruction.
|
|
|
- #[inline(always)]
|
|
|
- pub fn add_remaining_account(
|
|
|
- &mut self,
|
|
|
- account: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- is_writable: bool,
|
|
|
- is_signer: bool,
|
|
|
- ) -> &mut Self {
|
|
|
- self.instruction
|
|
|
- .__remaining_accounts
|
|
|
- .push((account, is_writable, is_signer));
|
|
|
- self
|
|
|
- }
|
|
|
- /// Add additional accounts to the instruction.
|
|
|
- ///
|
|
|
- /// Each account is represented by a tuple of the `AccountInfo`, a `bool` indicating whether the account is writable or not,
|
|
|
- /// and a `bool` indicating whether the account is a signer or not.
|
|
|
- #[inline(always)]
|
|
|
- pub fn add_remaining_accounts(
|
|
|
- &mut self,
|
|
|
- accounts: &[(
|
|
|
- &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- bool,
|
|
|
- bool,
|
|
|
- )],
|
|
|
- ) -> &mut Self {
|
|
|
- self.instruction
|
|
|
- .__remaining_accounts
|
|
|
- .extend_from_slice(accounts);
|
|
|
- self
|
|
|
- }
|
|
|
- #[inline(always)]
|
|
|
- pub fn invoke(&self) -> solana_program::entrypoint::ProgramResult {
|
|
|
- self.invoke_signed(&[])
|
|
|
- }
|
|
|
- #[allow(clippy::clone_on_copy)]
|
|
|
- #[allow(clippy::vec_init_then_push)]
|
|
|
- pub fn invoke_signed(
|
|
|
- &self,
|
|
|
- signers_seeds: &[&[&[u8]]],
|
|
|
- ) -> solana_program::entrypoint::ProgramResult {
|
|
|
- let args = SetupExtraMetasInstructionArgs {
|
|
|
- check_both_wallets: self.instruction.check_both_wallets.clone().unwrap_or(false),
|
|
|
- };
|
|
|
- let instruction = SetupExtraMetasCpi {
|
|
|
- __program: self.instruction.__program,
|
|
|
-
|
|
|
- authority: self.instruction.authority.expect("authority is not set"),
|
|
|
-
|
|
|
- config: self.instruction.config.expect("config is not set"),
|
|
|
-
|
|
|
- mint: self.instruction.mint.expect("mint is not set"),
|
|
|
-
|
|
|
- extra_metas: self
|
|
|
- .instruction
|
|
|
- .extra_metas
|
|
|
- .expect("extra_metas is not set"),
|
|
|
-
|
|
|
- system_program: self
|
|
|
- .instruction
|
|
|
- .system_program
|
|
|
- .expect("system_program is not set"),
|
|
|
- __args: args,
|
|
|
- };
|
|
|
- instruction.invoke_signed_with_remaining_accounts(
|
|
|
- signers_seeds,
|
|
|
- &self.instruction.__remaining_accounts,
|
|
|
- )
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-#[derive(Clone, Debug)]
|
|
|
-struct SetupExtraMetasCpiBuilderInstruction<'a, 'b> {
|
|
|
- __program: &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- authority: Option<&'b solana_program::account_info::AccountInfo<'a>>,
|
|
|
- config: Option<&'b solana_program::account_info::AccountInfo<'a>>,
|
|
|
- mint: Option<&'b solana_program::account_info::AccountInfo<'a>>,
|
|
|
- extra_metas: Option<&'b solana_program::account_info::AccountInfo<'a>>,
|
|
|
- system_program: Option<&'b solana_program::account_info::AccountInfo<'a>>,
|
|
|
- check_both_wallets: Option<bool>,
|
|
|
- /// Additional instruction accounts `(AccountInfo, is_writable, is_signer)`.
|
|
|
- __remaining_accounts: Vec<(
|
|
|
- &'b solana_program::account_info::AccountInfo<'a>,
|
|
|
- bool,
|
|
|
- bool,
|
|
|
- )>,
|
|
|
-}
|