From b7566e8701a559e262f8e55af025612398b870ae Mon Sep 17 00:00:00 2001 From: Matthew Callens Date: Sat, 10 Sep 2022 16:22:46 -0400 Subject: [PATCH 1/2] add wrappers for mpl creator verification ix --- spl/src/metadata.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/spl/src/metadata.rs b/spl/src/metadata.rs index f95372d526..d1f5512707 100644 --- a/spl/src/metadata.rs +++ b/spl/src/metadata.rs @@ -251,6 +251,38 @@ pub fn update_primary_sale_happened_via_token<'info>( Ok(()) } +pub fn sign_metadata<'info>(ctx: CpiContext<'_, '_, '_, 'info, SignMetadata<'info>>) -> Result<()> { + let ix = mpl_token_metadata::instruction::sign_metadata( + ID, + *ctx.accounts.metadata.key, + *ctx.accounts.creator.key, + ); + + solana_program::program::invoke_signed( + &ix, + &ToAccountInfos::to_account_infos(&ctx), + ctx.signer_seeds, + )?; + Ok(()) +} + +pub fn remove_creator_verification<'info>( + ctx: CpiContext<'_, '_, '_, 'info, RemoveCreatorVerification<'info>>, +) -> Result<()> { + let ix = mpl_token_metadata::instruction::remove_creator_verification( + ID, + *ctx.accounts.metadata.key, + *ctx.accounts.creator.key, + ); + + solana_program::program::invoke_signed( + &ix, + &ToAccountInfos::to_account_infos(&ctx), + ctx.signer_seeds, + )?; + Ok(()) +} + #[derive(Accounts)] pub struct CreateMetadataAccountsV2<'info> { pub metadata: AccountInfo<'info>, @@ -353,6 +385,18 @@ pub struct UpdatePrimarySaleHappenedViaToken<'info> { pub token: AccountInfo<'info>, } +#[derive(Accounts)] +pub struct SignMetadata<'info> { + pub creator: AccountInfo<'info>, + pub metadata: AccountInfo<'info>, +} + +#[derive(Accounts)] +pub struct RemoveCreatorVerification<'info> { + pub creator: AccountInfo<'info>, + pub metadata: AccountInfo<'info>, +} + #[derive(Clone, Debug, PartialEq)] pub struct MetadataAccount(mpl_token_metadata::state::Metadata); From 933fb8a142a2a8f116db7462a18ea66d2a04d910 Mon Sep 17 00:00:00 2001 From: Matthew Callens Date: Sat, 10 Sep 2022 16:24:57 -0400 Subject: [PATCH 2/2] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8039bd84e..3b670ca9e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ The minor version will be incremented upon a breaking change and the patch versi * spl: Add `create_metadata_accounts_v3` and `set_collection_size` wrappers ([#2119](https://github.com/coral-xyz/anchor/pull/2119)) * spl: Add `MetadataAccount` account deserialization. ([#2014](https://github.com/coral-xyz/anchor/pull/2014)). * spl: Add `update_primary_sale_happened_via_token` wrapper ([#2173](https://github.com/coral-xyz/anchor/pull/2173)). +* spl: Add `sign_metadata` and `remove_creator_verification` wrappers ([#2175](https://github.com/coral-xyz/anchor/pull/2175)). * lang: Add parsing for consts from impl blocks for IDL PDA seeds generation ([#2128](https://github.com/coral-xyz/anchor/pull/2014)) * lang: Account closing reassigns to system program and reallocates ([#2169](https://github.com/coral-xyz/anchor/pull/2169)). * ts: Add coders for SPL programs ([#2143](https://github.com/coral-xyz/anchor/pull/2143)).