如何查找 v2 糖果机铸造的所有 NFT

2023-11-21

我正在铸造 Solana NFT。 Candy machine v2 最近发布,v1 已弃用。

如果我创建一个 v2 糖果机并铸造一些 NFT,我以后如何从所有铸造的代币中找到哈希值?


如果您有糖果机 ID,您可以通过以下方式找到所有薄荷糖:

import { Connection } from '@metaplex/js';
import { Metadata, MetadataProgram } from '@metaplex-foundation/mpl-token-metadata';
const connection = new Connection('mainnet-beta');
const MAX_NAME_LENGTH = 32;
const MAX_URI_LENGTH = 200;
const MAX_SYMBOL_LENGTH = 10;
const MAX_CREATOR_LEN = 32 + 1 + 1;



const candyMachineId: string = 'BdNtsrV26ZHdqDFxmDfLib6CrcUNj4ePorhppHreRgER';

export async function fetchHashTable(hash: string){
  const metadataAccounts = await MetadataProgram.getProgramAccounts(
    connection,
    {
      filters: [
        {
          memcmp: {
            offset:
              1 +
              32 +
              32 +
              4 +
              MAX_NAME_LENGTH +
              4 +
              MAX_URI_LENGTH +
              4 +
              MAX_SYMBOL_LENGTH +
              2 +
              1 +
              4 +
              0 * MAX_CREATOR_LEN,
            bytes: hash,
          },
        },
      ],
    },
  )

  const mintHashes: any = []

  for (let index = 0; index < metadataAccounts.length; index++) {
    const account = metadataAccounts[index];
    const accountInfo: any = await connection.getParsedAccountInfo(account.pubkey);
    const metadata = new Metadata(hash.toString(), accountInfo.value);
    mintHashes.push(metadata.data.mint)
  }
  console.log(mintHashes)
}
fetchHashTable(candyMachineId)

您可以在以下位置找到此内容以及更多内容索拉纳食谱

编辑:以上内容适用于 Candy Machine V1。

对于 Candy Machine V2,您将执行以下操作:

import { Connection, clusterApiUrl, PublicKey } from '@solana/web3.js';
import bs58 from 'bs58';

const connection = new Connection(clusterApiUrl('mainnet-beta'));
const MAX_NAME_LENGTH = 32;
const MAX_URI_LENGTH = 200;
const MAX_SYMBOL_LENGTH = 10;
const MAX_CREATOR_LEN = 32 + 1 + 1;
const MAX_CREATOR_LIMIT = 5;
const MAX_DATA_SIZE = 4 + MAX_NAME_LENGTH + 4 + MAX_SYMBOL_LENGTH + 4 + MAX_URI_LENGTH + 2 + 1 + 4 + MAX_CREATOR_LIMIT * MAX_CREATOR_LEN;
const MAX_METADATA_LEN = 1 + 32 + 32 + MAX_DATA_SIZE + 1 + 1 + 9 + 172;
const CREATOR_ARRAY_START = 1 + 32 + 32 + 4 + MAX_NAME_LENGTH + 4 + MAX_URI_LENGTH + 4 + MAX_SYMBOL_LENGTH + 2 + 1 + 4;

const TOKEN_METADATA_PROGRAM = new PublicKey('metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s');
const CANDY_MACHINE_V2_PROGRAM = new PublicKey('cndy3Z4yapfJBmL3ShUp5exZKqR3z33thTzeNMm2gRZ');
const candyMachineId = new PublicKey('ENTER_YOUR_CANDY_MACHINE_ID_HERE');

const getMintAddresses = async (firstCreatorAddress: PublicKey) => {
  const metadataAccounts = await connection.getProgramAccounts(
      TOKEN_METADATA_PROGRAM,
      {
        // The mint address is located at byte 33 and lasts for 32 bytes.
        dataSlice: { offset: 33, length: 32 },

        filters: [
          // Only get Metadata accounts.
          { dataSize: MAX_METADATA_LEN },

          // Filter using the first creator.
          {
            memcmp: {
              offset: CREATOR_ARRAY_START,
              bytes: firstCreatorAddress.toBase58(),
            },
          },
        ],
      },
  );

  return metadataAccounts.map((metadataAccountInfo) => (
      bs58.encode(metadataAccountInfo.account.data)
  ));
};

const getCandyMachineCreator = async (candyMachine: PublicKey): Promise<[PublicKey, number]> => (
    PublicKey.findProgramAddress(
        [Buffer.from('candy_machine'), candyMachine.toBuffer()],
        CANDY_MACHINE_V2_PROGRAM,
    )
);

(async () => {

  const candyMachineCreator = await getCandyMachineCreator(candyMachineId);
  getMintAddresses(candyMachineCreator[0]);

})();

确保更换ENTER_YOUR_CANDY_MACHINE_ID_HERE与你的糖果机 ID

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查找 v2 糖果机铸造的所有 NFT 的相关文章

  • 十分钟入门以太和Opensea测试网批量发行NFT实战

    一 环境准备 1 注意 需合理上网 2 准备素材 准备一套多个属性元素的不一样的图层素材 比如10张背景图 10张face图 10张眼睛图层 10张头发图层等 每张图特性不一样 像素大小一样 比如500 500 背景透明 这样就可以随机组合
  • go语言实现NFT

    此文章以及链码 合约 均为原创 已通过以heco nft记录为NFT资产 HecoInfo Transaction Hash Txhash Details HecoInfo 请勿转载 如有兴趣 可扫描文章最后的二维码 基于erc721的以太
  • 【Web3 系列开发教程——创建你的第一个 NFT(6)】为 NFT 设置价格

    我想作为 NFT 的创建者 你可能有意将你的 NFT 出售给你的 NFT 爱好者 为此 我们需要为 NFT 定价 一般有两种主要的定价方式 在智能合约内定价 本文所讲 在 NFT 市场或平台上列出你的 NFT 更流行的方法 在智能合约内设置
  • NFT数字藏品平台开发——如何快速搭建搭建数字藏品平台

    2021年可以称为元宇宙年 随着元宇宙概念的兴起 好多人都在关心我们是否可以成功构建元宇宙 显然是可以实现的 2022年年初 NFT在国内的热潮兴起 国内也称之为数字藏品 NFT由于具有不可置换 不可分割的特性 很快在国内掀起一热潮 西西弗
  • 国内NFT平台及玩法一览

    2021年被称为NFT的 元年 互联网巨头 各大企业 艺术家 明星纷纷入局NFT 屡创新高的NFT价格更是让其成为大众关注焦点 此推出NFT系列专题研究 盘点和总结NFT的发行市场 平台背景 投融资状况 市场热点 政策监管等相关内容 帮助读
  • 【Web3 系列开发教程——创建你的第一个 NFT(5)】使用 Ethers.js 铸造 NFT

    本节文章将描述如何通过 ethers js 库使用以太币在以太坊区块链上铸造 NFT 以及我们还会讨论如何对创建的 NFT 进行基础的测试 在本文中 我们将实践一种可替代的方法 即使用 OpenZeppelin V4 库 以及 Ethers
  • 对区块链技术的一些思考

    作者 朱金灿 来源 clever101的专栏 为什么大多数人学不会人工智能编程 gt gt gt 缘起 本想把标题起为有些扯淡的区块链 但想想咱们还是别标题党了 实在一些吧 前段时间有个朋友向我介绍区块链技术 提到区块链技术如何牛逼 说到
  • 以太坊如何发布NFT到opensea

    前提说明 此篇文章主要讲解 如何发布类似于网址 https killaznft com 或者 https thesevensofficial com 这种基于项目方的NFT 进行网页售卖以及上架到OpenSea上进行展示和售卖的过程 对技术
  • 《2022数字藏品研究报告》首发,读懂NFT中西方价值捕获的分化之路

    NFT作为 柯林斯词典 2021年度热词榜第一 很多人愿意称2021年为NFT元年 在过去几年里 我们见证了NFT从早期Myspace里的Pepe圈内文化发展成为风靡全球的潮流风向标 无论是在音乐圈 游戏圈或者摄影圈 如果你想成为行业的弄潮
  • 如何查找 v2 糖果机铸造的所有 NFT

    我正在铸造 Solana NFT Candy machine v2 最近发布 v1 已弃用 如果我创建一个 v2 糖果机并铸造一些 NFT 我以后如何从所有铸造的代币中找到哈希值 如果您有糖果机 ID 您可以通过以下方式找到所有薄荷糖 im
  • 如何获取我拥有的代币列表?

    我想获取给定钱包公钥的我当前拥有的代币列表 目前我正在使用https api solscan io account tokens address PUBLIC KEY gt price 1获得我拥有的代币 好的 所以我找到了这个 使用 SP
  • 来自同一来源的多个 NFT

    一般性的 NFT 问题 但不要攻击我 我真的试图找到答案 NFT 可以从同一张图像或该图像的副本创建吗 以我创建的这个 NFT 狮子猫为例 https rarible com token 0x60f80121c31a0d46b5279700
  • @solana/web3.js 有 ERC721 元数据的 API 吗?

    给定一个代币铸造地址 我正在寻找一种方法来访问 ERC721 代币的元数据 solana web3 js 中有 API 吗 Solana 将代币元数据存储在从原始代币地址派生的地址中https docs solana com develop
  • 如何在您通过智能合约以编程方式铸造的 NFT 上包含“创建者...”信息(例如在 OpenSea 列表中)

    我一直在编写测试智能合约 为即将启动的项目做准备 以下是示例测试智能合约创建的集合之一 https opensea io collection quad tech https opensea io collection quad tech
  • 幻影:钱包签名交易错误:出了问题

    创建一条消息并由用户对其进行签名 const anchorWallet useAnchorWallet const createLoginSignature async gt if anchorWallet return const mes
  • 为什么“anchor build”和“Cargo build-bpf”显示错误的 rustc 版本?

    我正在尝试构建 https github com betterclever solend anchor https github com betterclever solend anchor 包使用anchor build 但是我收到以下错
  • 获取与 Solana 钱包地址关联的资产列表

    我正在使用 Solana 的 web3 sdk 来查询余额或进行交易 现在我想知道是否可以实现以下操作之一 从提供的钱包地址获取资产列表 从提供的 nft 地址获取钱包地址 如果两者都可以的话 这个会更好 当然 回答你的问题 getToke
  • 开发人员指南从以太坊迁移到 Solana

    这篇文章是关于什么的 以太坊是近期最重要的创新之一 历史上第一次 我们有了一个为社会协调而建立的去中心化全球平台 它有可能彻底改变许多行业 尽管重要 但以太坊的运行环境 以太坊虚拟机 EVM 目前的状态并不是为消费级应用而构建的 它是一个单
  • 用于解析 Solana NFT 元数据并更新元数据的代码示例

    在 Solana 上 NFT 元数据存储在共享合约代币元数据程序所拥有的账户中 地址为metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s 我需要一个清晰 简洁的代码示例来说明如何使用某些现有库来获取特定
  • ERC721:转账调用者不是所有者也不是批准的

    我有一个 nftToken 合约 可以将代币铸造到 msg sender 然后我在市场合约中有一个函数 可以将 nft 从所有者转移到市场合约 但是 我收到一条错误消息 ERC721 转账调用者不是所有者也不是批准的 这是我的 nftCon

随机推荐

  • 单击取消按钮 showInputDialog

    我有一个关于按输入对话框的取消按钮的问题 我以前曾问过类似的问题 所以如果我似乎重复了自己的话 我深表歉意 我遇到的主要问题是 无论我按下取消键 我的代码都会执行 并且即使我不添加任何输入 也会建立套接字连接 为什么会发生这种情况以及如何避
  • Xcode 5 和phonegap:为设备构建链接器错误,但不为模拟器构建链接器错误

    我们的phonegap应用程序对于iPhone模拟器构建得很好 但在iPhone上构建应用程序时会生成链接器错误 唯一改变的是安装 testflight 和测试应用程序 我们已经删除了 testflight 和测试应用程序 但链接器错误仍然
  • Apache Shiro 和 SSO

    Apache Shiro 是一个 Java 安全框架 支持 SSO 我有多个子域 每个子域都有单独的应用程序运行 我如何使用 Apache Shiro Web 过滤器 或任何其他过滤器 来提供单点登录 在使用 Apache Shiro 之前
  • 在 Oracle SQL 中删除表

    每当我尝试删除表或创建表时 它都会显示以下错误 DROP TABLE SUBURB DROP TABLE STOCKITEM DROP TABLE MANUFACTURER DROP TABLE WAREHOUSE DROP TABLE C
  • 重写规则以仅检测数字

    我正在尝试创建一个重写规则 该规则将仅检测数字并相应地转发它们 我希望如果出现除数字以外的任何内容 则忽略重写规则 index php OK OK 42365 重写为view php id 42365 到目前为止我所拥有的 RewriteE
  • 我正在做正确的事情将分贝从 -120 - 0 转换为 0 - 120

    我想测量周围的音量 不太确定我做的是否正确 我想创建一个范围从 0 安静 到 120 非常吵闹 的 VU 表 我得到了峰值功率和平均功率 但在正常安静环境中非常高 请给我一些指示 void viewDidLoad super viewDid
  • 如何最好地消毒 ruby​​ on Rails 中的字段

    我目前有一个控制器从前端的 TinyMCE 捕获一些 html 如果我修补萤火虫 就可以提交脚本标签并将警报消息等注入到屏幕上 编辑 目前我正在使用清理助手在模型中修复此问题 require action view class NotesC
  • 按组有条件 NA 填充

    edit这个问题最初是问的data table 任何包的解决方案都会很有趣 我对一个更普遍的问题的特定变体有点困惑 我有与 data table 一起使用的面板数据 我想使用 data table 的分组功能来填充一些缺失的值 不幸的是它们
  • Python 中的整数到十六进制转换

    a 1 print hex a 上面给了我输出 0x1 我如何获得输出0x01反而 您可以使用format gt gt gt a 1 gt gt gt 0 02x format a 01 gt gt gt 0x 0 02x format a
  • 多线程:我需要在只读方法中保护我的变量吗?

    我对使用锁来保护我的共享数据结构有几个疑问 我正在使用 C C ObjC Objc 例如我有一个在多线程环境中使用的计数器类 class MyCounter private int counter std mutex m public in
  • 来回改变风格

    Code p class demo my text p
  • 如何从PHP中的路径找到图像的扩展名?

    PHP 中是否有任何标准函数可以从相应的文件路径中仅查找图像的扩展名 例如 如果我的图像路径类似于 testdir dir2 image gif 则该函数应返回 gif Thanks ext pathinfo parse url testd
  • Android VirtualBox 共享文件夹 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我已经在 VirtualBox 中安装了 Android x86 我从我的主机共享了一个文件夹 该文件夹是 Windows 7 for Virtual Android Machine
  • Angular.Service 与 Angular.Factory

    我都看过角度工厂 and 角度 service 用于声明服务 但是 我找不到 angular service官方文档中的任何地方 这两种方法有什么区别 哪个应该用于什么 假设它们做不同的事情 angular service myServic
  • 与 classList.add 和 getElementsByClassName 作斗争[重复]

    这个问题在这里已经有答案了 我正在尝试向具有特定类 输入字段集 的某些元素添加额外的类 fieldset class input fieldset fieldset fieldset class input fieldset fieldse
  • 从 Jenkins 中的 pom 文件自动派生强制 SonarQube 属性

    情况 我想使用 Jenkins 1 642 4 触发的 SonarQube 5 4 来分析我的项目 这是一个用maven构建的java项目 我看到有两种触发分析的方法 构建后操作 使用 Maven 进行 SonarQube 分析 但它是已弃
  • lodash流函数应该如何在typescript中输入?

    lodash flow结合了两个或多个功能 lodash flow double addTwo 将返回一个函数 该函数将加倍并添加两个 这个函数应该如何在打字稿中输入 当前定义只返回 Function declare function fl
  • jQuery:按键退格键不会触发?

    我想知道我做错了什么 s keypress function e switch e keyCode case 8 Backspace console log backspace case 9 Tab case 13 Enter case 3
  • 设计Flash方法Rails [重复]

    这个问题在这里已经有答案了 我正在使用 Rails 4 Twitter Bootstrap 3 0 和 Devise 3 0 我正在尝试为设备和网站的其余部分获取外观相同的闪存消息 到目前为止我有这个 Within 应用程序 视图 布局 a
  • 如何查找 v2 糖果机铸造的所有 NFT

    我正在铸造 Solana NFT Candy machine v2 最近发布 v1 已弃用 如果我创建一个 v2 糖果机并铸造一些 NFT 我以后如何从所有铸造的代币中找到哈希值 如果您有糖果机 ID 您可以通过以下方式找到所有薄荷糖 im