我从锚点 0.17 更新到版本 0.24,从那时起,获取收款帐户失败并出现锚点错误,如下所示:
Error: Invalid account discriminator
这是我的代码
export const getCollectionPDA = async (candyMachineAddress: string): Promise<anchor.web3.PublicKey> => {
return (
await anchor.web3.PublicKey.findProgramAddress(
[Buffer.from("collection"), new PublicKey(candyMachineAddress).toBuffer()],
new PublicKey(CANDY_MACHINE_PROGRAM_V2)
)
)[0];
};
const provider = new AnchorProvider(connection, getmywallet(), {
preflightCommitment: "finalized",
commitment: "finalized",
});
const idl = await Program.fetchIdl(CANDY_MACHINE_PROGRAM_V2, provider);
const anchorProgram = new Program(idl, CANDY_MACHINE_PROGRAM_V2, provider);
const candyMachineId = "63gzhYWxJ4Yfc5QahLxV6NChSjJZNWW93Sy9CHz8YkCe";
const collectionPDA = await getCollectionPDA(candyMachineId);
const collectionPDAAccount = await connection.getAccountInfo(collectionPDA);
const collectionData = await anchorProgram.account.collectionPda.fetch(new PublicKey(collectionPDA.toString()));
Run Code Online (Sandbox Code Playgroud)
我想知道这是怎么回事。也许集合帐户结构已更新并且区块链包含旧结构?直到最近主播才开始检查这一点?
我已经准备好了 Candy Machines,用于在 Solana 网络中铸造 NFT 集合,并且我正在使用其 Devnet 测试 Mint 流程。即使您可以找到很多有关如何准备糖果机的教程,但有些问题我仍然无法找到正确的答案,我认为这对其他用户可能有用。
我输入命令:
npx ts-node candy-machine-v2-cli.ts upload -e devnet \
-k DEVw4sdjjwo3he1JgJbycZuWmZuC28YFMEY9uYpnP7cP.json -c cm2test \
-cp /users/macbook/git/cmv2/setup/cmsetup.json \
/users/macbook/git/cmv2/setup/uploadfolder
Run Code Online (Sandbox Code Playgroud)
这给了我:
Attempt to debit an account but found no record of a prior credit
Run Code Online (Sandbox Code Playgroud)
solana 余额给了我:
0 索尔
如果我输入:
solana airdrop 1 <RECIPIENT_ACCOUNT_ADDRESS> --url https://api.devnet.solana.com
和这个 :
solana balance <ACCOUNT_ADDRESS> --url https://api.devnet.solana.com
这给了我:
2 索尔
我陷入了教程的这个阶段:https://youtu.be/wBWmO5zPpug ?t=910
我一直使用Solana-labs / token-listGithub 上的存储库 ( https://github.com/solana-labs/token-list ) 将图像和名称上传到我通过控制台创建的令牌,这非常好且简单。但是,当我昨晚上传新的时,我注意到截至 6 月 20 日,该存储库是只读的。我想知道另一种方法是获取与我现有的 WL SPL 令牌关联的名称和图像,这样它就不会出现问题。在人们的钱包里,它似乎不为人知。
我总是使用以下命令在控制台中创建与糖果机一起使用的白名单令牌:
spl-token create-token --decimals 0
spl-token create-account <token-key>
spl-token mint <token-key> 5 <token-wallet>
然后将其用作 config.json 中的白名单密钥。
有没有办法在其他地方以同样的方式注册?自述文件中提到的两个当前选项(https://app.strataprotocol.com/launchpad/manual/new和https://token-creator-lac.vercel.app/)旨在帮助您创建一个新令牌尚未注册。但是如果我希望这个令牌成为糖果机中使用的白名单令牌,我可以走这条路吗?
我认为这是我目前为止的最后一个障碍。我只是想确认有人知道在实时铸币期间可以使用的另一条路线,以确保白名单按预期工作。一如既往地感谢任何帮助。
我一直在尝试执行这个脚本(下面的链接)来获取 NFT Mint Addresses 。不幸的是,无论我使用哪种糖果机 v1 或 v2,我总是会收到此错误。
https://solanacookbook.com/references/nfts.html#how-to-get-nft-mint-addresses
bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
(node:11240) UnhandledPromiseRejectionWarning: Error: 410 Gone: {"jsonrpc":"2.0","error":{"code": 410, "message":"The RPC call or parameters have been disabled."}, "id": "3bc319ad-c4e0-45a4-b4bf-c1009ce99851" }
at ClientBrowser.callServer (C:\Users\mlvie\Desktop\ranking projects\test4\node_modules\@solana\web3.js\lib\index.cjs.js:4819:18)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:11240) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or …Run Code Online (Sandbox Code Playgroud) 我试图通过上传测试内容
ts-node src/candy-machine-cli.ts upload assets --env devnet --keypair "~\.config\solana\devnet.json" -n 10
Run Code Online (Sandbox Code Playgroud)
并遇到下面的错误
事务模拟失败:错误处理指令1:程序无法完成程序11111111111111111111111111111111调用[1]程序1111111111111111111111111111111成功程序cndyAnrLdpjq1Ssp1z8xxDsB8dxe7u4HL5Nxi2K5WX Z 调用 [1] 程序日志:错误:内存分配失败,内存不足 程序 cndyAnrLdpjq1Ssp1z8xxDsB8dxe7u4HL5Nxi2K5WXZ 消耗了 200000 个计算单元(共 200000 个) 程序失败完成:BPF 程序出现恐慌 程序 cndyAnrLdpjq1Ssp1z8xxDsB8dxe7u4HL5Nxi2K5WXZ 失败:程序无法完成
我认为该消息可能会产生误导,因为我只处理 10 张图像。但不确定到底出了什么问题。