【问题标题】:Is there a way to read NFT metadata in the anchor program(rust)?有没有办法在锚程序(锈)中读取 NFT 元数据?
【发布时间】:2022-07-07 00:29:30
【问题描述】:

我尝试使用 mint 帐户信息(这显然不起作用),并且我还尝试将 mint.to_account_info().data 反序列化为来自 mpl_token_metadata::state::Metadata 的元数据结构。这给出了错误。

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

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

在此先感谢 :)

【问题讨论】:

  • 请向我们展示一些代码以及您遇到了哪些错误。
  • 我丢失了我的代码,但我使用了错误的方法。我正在做类似的事情:let mint_account = ctx.accounts.mint.to_account_info(); let mint_metadata = &mint_account.data; msg!("mint account {:?}", mint_account); msg!("mint metadata {:?}", mint_metadata);
  • 请创建两个问题,因为您的问题针对两个不同的领域。

标签: rust solana


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 1970-01-01
      • 2014-08-15
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2011-05-18
      • 1970-01-01
      相关资源
      最近更新 更多