spa: adds update metadata instruction cpi wrapper (#1897)
This commit is contained in:
parent
ef178e5217
commit
1490d5f129
|
@ -18,8 +18,8 @@ pub fn create_metadata_accounts_v2<'info>(
|
||||||
ctx: CpiContext<'_, '_, '_, 'info, CreateMetadataAccountsV2<'info>>,
|
ctx: CpiContext<'_, '_, '_, 'info, CreateMetadataAccountsV2<'info>>,
|
||||||
data: DataV2,
|
data: DataV2,
|
||||||
is_mutable: bool,
|
is_mutable: bool,
|
||||||
|
update_authority_is_signer: bool,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let update_authority_is_signer = true;
|
|
||||||
let DataV2 {
|
let DataV2 {
|
||||||
name,
|
name,
|
||||||
symbol,
|
symbol,
|
||||||
|
@ -54,6 +54,30 @@ pub fn create_metadata_accounts_v2<'info>(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn update_metadata_accounts_v2<'info>(
|
||||||
|
ctx: CpiContext<'_, '_, '_, 'info, UpdateMetadataAccountsV2<'info>>,
|
||||||
|
new_update_authority: Option<Pubkey>,
|
||||||
|
data: Option<DataV2>,
|
||||||
|
primary_sale_happened: Option<bool>,
|
||||||
|
is_mutable: Option<bool>,
|
||||||
|
) -> Result<()> {
|
||||||
|
let ix = mpl_token_metadata::instruction::update_metadata_accounts_v2(
|
||||||
|
ID,
|
||||||
|
*ctx.accounts.metadata.key,
|
||||||
|
*ctx.accounts.update_authority.key,
|
||||||
|
new_update_authority,
|
||||||
|
data,
|
||||||
|
primary_sale_happened,
|
||||||
|
is_mutable,
|
||||||
|
);
|
||||||
|
solana_program::program::invoke_signed(
|
||||||
|
&ix,
|
||||||
|
&ToAccountInfos::to_account_infos(&ctx),
|
||||||
|
ctx.signer_seeds,
|
||||||
|
)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn create_master_edition_v3<'info>(
|
pub fn create_master_edition_v3<'info>(
|
||||||
ctx: CpiContext<'_, '_, '_, 'info, CreateMasterEditionV3<'info>>,
|
ctx: CpiContext<'_, '_, '_, 'info, CreateMasterEditionV3<'info>>,
|
||||||
max_supply: Option<u64>,
|
max_supply: Option<u64>,
|
||||||
|
@ -115,6 +139,12 @@ pub struct CreateMetadataAccountsV2<'info> {
|
||||||
pub rent: AccountInfo<'info>,
|
pub rent: AccountInfo<'info>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Accounts)]
|
||||||
|
pub struct UpdateMetadataAccountsV2<'info> {
|
||||||
|
pub metadata: AccountInfo<'info>,
|
||||||
|
pub update_authority: AccountInfo<'info>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Accounts)]
|
#[derive(Accounts)]
|
||||||
pub struct CreateMasterEditionV3<'info> {
|
pub struct CreateMasterEditionV3<'info> {
|
||||||
pub edition: AccountInfo<'info>,
|
pub edition: AccountInfo<'info>,
|
||||||
|
|
Loading…
Reference in New Issue