metaplex-foundation / metaplex-program-library

Smart contracts maintained by the Metaplex team
Other
588 stars 513 forks source link

[Bug]: Can't thaw delegated accounts that migrated to programmable nfts #1046

Closed MBenz12 closed 1 year ago

MBenz12 commented 1 year ago

Which package is this bug report for?

token-metadata

Which Type of Package is this bug report for?

Rust Contract

Issue description

We built nft staking program that is non-custodial. we're using freeze_delegated_account for stake, and thaw_delegated_account for unstake. there're lots of nfts staked into our staking program, then we migrated to programmable nfts

https://docs.rs/mpl-token-metadata/1.8.5/src/mpl_token_metadata/processor/metadata/migrate.rs.html#210 here edition account updated into ProgrammableNonFungible so staked nfts can't be unstaked, because thaw_delegated_account doesn't allow to thaw programmable nfts https://docs.rs/mpl-token-metadata/1.8.5/src/mpl_token_metadata/processor/freeze/thaw_delegated_account.rs.html#55 how can we thaw these nfts?

Relevant log output

No response

Priority this issue should have

High (immediate attention needed)

samuelvanderwaal commented 1 year ago

Since pNFTs are always frozen, you need to use the new Lock/Unlock abstraction. When you migrated to a pNFT you received a Migration Delegate that has the ability to call the Lock and Unlock commands. You can read more about the new delegate system here: https://github.com/metaplex-foundation/metaplex-program-library/blob/master/token-metadata/program/ProgrammableNFTGuide.md.

MBenz12 commented 1 year ago

thanks for you help @samuelvanderwaal I was able to unstake using unlock,