![](/img/trans.png)
[英]Receiving error when minting NFT on Solana devnet Metaplex v1.2.0 candy-machine-ui
[英]Solana: Get Candy Machine info from a NFT token using Js
我試圖找出特定 nft 的糖果機 ID 或地址是什么。
到目前為止,我已經嘗試使用@solana/web3.js 遍歷錢包帳戶
const tokenAccounts = await connection
.getParsedTokenAccountsByOwner(publicKey, {
programId: TOKEN_PROGRAM_ID,
})
.then((context) => context.value);
還嘗試了 metaplex/js,我得到了更多信息,比如 creators:
const mintAccount = new metaplex.Account(searchNftAddress, mintAccInfo);
if (mintAccount) {
const metadata = metaplex.programs.metadata.Metadata.from(mintAccount);
console.log(metadata.data?.data?.creators);
}
但是我沒有找到糖果機信息。
如果我理解得很好,你想知道特定 NFT 的所有者嗎?
這對我有用,我從這里https://solanacookbook.com/references/nfts.html#candy-machine-v1
import {Connection, clusterApiUrl, PublicKey} from '@solana/web3.js';
const connection = new Connection(clusterApiUrl('mainnet-beta'));
export const getOwnerAddresses = async (tokenMint) => {
//const connection = new Connection('https://api.mainnet-beta.solana.com');
const largestAccounts = await connection.getTokenLargestAccounts(new PublicKey(tokenMint));
const largestAccountInfo = await connection.getParsedAccountInfo(largestAccounts.value[0].address);
//console.log(largestAccountInfo.value.data);
console.log(largestAccountInfo.value.data.parsed.info.owner);
/*
PublicKey {
_bn: <BN: 6ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9>
}
*/
};
您只需要創建導入模塊並像這樣使用它:
getOwnerAddresses('XXXXXXXXX');
我想當你上傳 nfts 時,在緩存文件夾中,將創建一個新的 json,你可以從那里獲得 id:
{
"program": {
"uuid": "Wzsae7",
"config": "Serai5EV4oisGhcZHYHGaL4J16ebWKU2yagUrer5fBaK"
},
"items": {
"0": {
"link": "https://arweave.net/flpdtSkJcdospfV93Yfy_tUTrY3abDWDMvTyNMLiY2",
"name": "TEST 0",
"onChain": true
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.