Appearance
插入项目
作者 崔棉大师 X:@MasterCui Youtube: 崔棉大师
知识点
到目前为止,我们已经学会了如何创建和配置糖果机,但我们还没有看到如何在其中插入可以铸造成 NFT 的物品。因此,让我们在这个页面上解决这个问题。
重要的是要记住,插入物品仅适用于使用配置行设置configLineSettings
的糖果机。这是因为使用隐藏设置hiddenSettings
从糖果机铸造的 NFT 都将共享相同的隐藏
名称和 URI。
课程
1.上传 JSON 元数据
要将物品放入糖果机,您需要为每个物品提供以下两个参数:
name
:此 NFT Item 的名称。如果在配置行设置中提供了名称前缀,则您只能提供该前缀后面的名称部分。URI
:此 NFT Item 的 JSON 元数据的 URI。这里也排除了配置行设置中可能提供的 URI 前缀。
如果您还没有准备好 NFT 的 URI,则首先需要逐个上传其 JSON 元数据。这可以使用链下解决方案(例如 AWS 或您自己的服务器)或链上解决方案(例如 Arweave 或 IPFS)。
幸运的是,我们的 SDK 可以帮助您实现这一点。它们允许您上传 JSON 对象并检索其 URI。
js
import { createGenericFile } from "@metaplex-foundation/umi";
import { irysUploader } from "@metaplex-foundation/umi-uploader-irys";
// 加载irysUploader
umi.use(irysUploader());
// 读取图像文件
const fileBuffer = fs.readFileSync(path.join("docs/public", "Whaler_logo.gif"));
const file = createGenericFile(fileBuffer, "Whaler_logo.gif", {
contentType: "image/gif",
});
// 获取图像价格
const uploadPrice = await umi.uploader.getUploadPrice([file]);
// 上传图像
const [imageUri] = await umi.uploader.upload([file]);
// 上传json
const uri = await umi.uploader.uploadJson({
name: "My NFT #1",
description: "My description",
image: imageUri,
});
2.插入项目
现在我们有了所有物品的名称和 URI,我们需要做的就是将它们插入我们的 Candy Machine 帐户。
这是流程中的重要部分,当使用配置行设置configLineSettings
时,只有在插入所有项目后才允许铸造。
请注意,每个插入项目的名称和 URI 分别受配置行设置的名称长度和 URI 长度属性的约束。
js
// 插入项目
await addConfigLines(umi, {
candyMachine: candyMachine.publicKey,
index: candyMachine.itemsLoaded,
configLines: [
{ name: "My NFT #1", uri: "https://example.com/nft1.json" },
{ name: "My NFT #2", uri: "https://example.com/nft2.json" },
],
}).sendAndConfirm(umi);