anchor_spl/token_2022_extensions/
immutable_owner.rs1#![allow(deprecated)]
3use {
4 anchor_lang::{
5 context::CpiContext,
6 solana_program::{account_info::AccountInfo, pubkey::Pubkey},
7 Accounts, Result,
8 },
9 spl_token_2022_interface as spl_token_2022,
10};
11
12pub fn immutable_owner_initialize<'info>(
13 ctx: CpiContext<'_, '_, '_, 'info, ImmutableOwnerInitialize<'info>>,
14) -> Result<()> {
15 let ix = spl_token_2022::instruction::initialize_immutable_owner(
16 ctx.accounts.token_program_id.key,
17 ctx.accounts.token_account.key,
18 )?;
19 anchor_lang::solana_program::program::invoke_signed(
20 &ix,
21 &[ctx.accounts.token_program_id, ctx.accounts.token_account],
22 ctx.signer_seeds,
23 )
24 .map_err(Into::into)
25}
26
27#[derive(Accounts)]
28pub struct ImmutableOwnerInitialize<'info> {
29 pub token_program_id: AccountInfo<'info>,
30 pub token_account: AccountInfo<'info>,
31}