gpt4 book ai didi

hedera-hashgraph - 如何在仅调用一次 TokenMintTransaction 的 Hedera 上类型转换多个 NFT?

转载 作者:行者123 更新时间:2023-12-05 02:28:21 29 4
gpt4 key购买 nike

我想类型转换 100 个 NFT。我需要调用“TokenMintTransaction()”100 次吗?有没有办法在一次 API 调用中类型转换 100 个 NFT?

这是我使用的代码:

let mintTx = new TokenMintTransaction().setTokenId(tokenId).setMetadata([Buffer.from(CID)]).freezeWith(client);

我可以在 .setMetadata() 中传递什么来类型转换多个 NFT?

最佳答案

是的,可以类型转换多个 NFT在单个 TokenMintTransaction() 中,但有一些事情需要注意。

一笔交易有一个max size 6,144 kb,包括签名。

.setMetadata() 接受一组 NFT 元数据。每个数组元素都会导致在 token 类型下创建具有唯一序列号的 NFT。交易收据将包含交易创建的所有新序列号。

关注您的元数据大小很重要,因为如果您在数组中放置太多项目,您将收到 TRANSACTION_OVERSIZE 错误,并且不会生成 NFT。

这是在单笔交易中类型转换多个 NFT 的示例:

let metadata = [];
let CID = [];
for (let i = 0; i < 3; i++) {
// NFT STORAGE
const fileName = `LEAF${i + 1}.jpg`;
metadata[i] = await nftClient.store({
name: `LEAF${i + 1}`,
description: "Leaf NFT.",
image: new File([await fs.promises.readFile(fileName)], fileName, { type: "image/jpg" }),
});

CID[i] = Buffer.from(metadata[i].url);

// IPFS URI FOR NFT METADATA - See HIP-412: https://hips.hedera.com/hip/hip-412
let ipfsBaseUrl = "https://ipfs.io/ipfs/";
let ipfsGatewayLink = ipfsBaseUrl + metadata[i].ipnft + "/metadata.json";
console.log(`- IPFS link for serial ${i + 1}: ${ipfsGatewayLink} \n`);
}

// MINT NEW BATCH OF NFTs
let mintTx = new TokenMintTransaction().setTokenId(tokenId).setMetadata(CID).freezeWith(client);
let mintTxSign = await mintTx.sign(operatorKey);
let mintTxSubmit = await mintTxSign.execute(client);
let mintRec = await mintTxSubmit.getRecord(client);

console.log(`- Minting fees: ${mintRec.transactionFee._valueInTinybar.c[0] * 1e-8} hbar \n`);

虽然一次创建 100 个 NFT 可能是不可能的,但您应该能够一次创建十个(取决于元数据大小)。

关于hedera-hashgraph - 如何在仅调用一次 TokenMintTransaction 的 Hedera 上类型转换多个 NFT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72662625/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com