是否有办法在锚程序(rust)中读取NFT元数据?



我尝试使用薄荷帐户信息(这显然是行不通的),我还试图从mpl_token_metadata::state::Metadata反序列化mint.to_account_info().data到元数据结构。这给了错误。

我需要sellerFeeBasisPoints和来自NFT元数据的创建者信息。

还有,是否有办法更新primarySaleHappened参数?(我正在为NFT市场编写自定义拍卖合同)。

Thanks in Advance:)

您可以使用Metaplex提供的mpl_token_metadata-crate来反序列化Metadata-struct:

use mpl_token_metadata::state::Metadata;
let metadata: Metadata = Metadata::from_account_info(metadata_account_info)?;

对于你的第二个问题,请打开一个新的问题。

对于第二个问题,如果您计划从程序中更新primarySaleHappened,那么您可以对令牌元数据程序执行CPI(跨程序调用)到此函数update_primary_sale_happened_via_token。同样,你可以在@metaplex-foundation/mpl-token-metadatanpm包中找到createUpdatePrimarySaleHappenedViaTokenInstruction,在js/ts端完成。

最新更新