译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3]
译者注:BuildBear 是一个很好平台,开发人员可以在 BuildBear 上创建自己的测试节点,并根据需求对其进行定制(如 fork 主网),BuildBear 为测试节点提供了相应的浏览器,让我们了解交易背后发生了什么,使用 BuildBear 可以帮助团队一起进行大规模测试。
在编写 SoulBound (灵魂绑定) NFT 合约之前,让我们了解什么是 SoulBound NFT 以及它对我们有什么用。
Soulbound Token(SBT)只是非同质的代币(NFT),一旦铸造,就不能转让或出售给其他人。
Soulbound Token 可以帮助我们:
_以及更多_。
你可以使用 SoulBound 代币的想法:
因此,让我们不要再等待,现在就开始
1.1: 在你的 CLI(命令行)上使用以下命令来初始化你的项目:
mkdir soulbound-NFT-with-buildbear && cd soulbound-NFT-with-buildbear
1.2: 在你的 CLI 上运行npx hardhat
命令,并选择创建一个Javascript对象
;在所有选项中选择是
。
一旦你成功地执行了上述命令,如果你在 VS Code 中打开这个 repo,你应该有一个目录结构,类似于下面:
2.1: 在contracts
文件夹中创建一个名为Soulbound.sol
的文件。
2.2 我们使用了在另一篇文章[4]中已经学到的 ERC-721 合约的代码。
你可以使用以下代码:
你甚至可以从我们的 Github 上获得上述代码,代码在这里[5]
现在,让我们用 BuildBear 把它部署在私有的测试网上,来玩玩这个合约。
3.1: 在 BuildBear 上创建一个私有测试网 🐻❄️ _(你问为什么是 BuildBear?请看一下这里。Where Localhost Fails[6]和Win Web3 Hackathons, using BuildBear Testnet's analytics[7]_。
3.1.1: 访问BuildBear App[8]。一旦你用你的 Github 账户登录,你会看到一个类似于下面添加的图片的页面
在这里,为我们的程序创建一个简单的节点,所以我们将点击创建一个端点(Create an endpoint),我们将被重定向到节点配置页面。但在本文中,我们将使用默认配置来创建我们的节点。
所以我们将简单地点击 "创建(create)"按钮,如下所示。
恭喜你! 你已经创建了你的私人 testnet 节点!
你的页面应该被更新为类似以下的内容。
点击 RPC URL(复制或点击查看)以获得到你的私有测试网的 RPC。
3.2: 为了进行交易,我们需要来自 faucet 的资金。不要担心! 我们不需要到处找水龙头来获取测试用的以太币。
点击打开水龙头选项,添加你选择你的账户。
之后,点击水龙头页面右角的添加到 Metamask选项。
你的 metamask 将立即提供 1000BB ETH。
3.3: 将hardhat.config.js
更新为以下内容:
在网络中,我们已经创建了一个名为buildbear的网络,并在那里添加了我们的 RPC URL,然后添加了 metamask 账户的私钥(请不要将你的私钥暴露给任何人,永远不要)。
现在我们的配置已经准备好了! 让我们来编写智能合约。
4.1: 使用下面的脚本来部署你的 souolbound 合约。
const { ethers } = require("hardhat");
const hre = require("hardhat");
async function main() {
const Soulbound = await hre.ethers.getContractFactory("Soulbound");
const soulbound = await Staking.deploy();
await soulbound.deployed();
console.log(
"Soulbound contract deployed to:", soulbound.address
);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
打开你的 CLI,运行以下命令:
npx hardhat run scripts/deploy.js --network buildbear
4.2 现在,如果你回到 BuildBear Explorer(链接可从 BuildBear App[9],一旦你创建了你的私人测试网)。你会看到你部署的合约。
4.3 现在打开你部署的地址,在合约标签下打开写合约标签
你可以看到在这里我们有所有的功能,我们已经包含在我们的合约中。
为了给我们的灵魂绑定代币铸币,我们将调用safeMint函数,它需要用户的地址和 NFT 的 tokenURI,其中包括代币的所有元数据。
4.4 (可选): 如果你不知道如何在 IPFS 上上传 tokenURI,那么你必须跟着做。
IPFS 允许你在区块链上存储你的数据,如图片,和其他数据。为了存储你自己的数据,打开 Pinata,这是一个为你提供在 IPFS 上存储数据的平台。
在你的系统上创建一个.json 文件,并在其中添加以下数据:
{
"title": "John Doe",
"type": "Identity Card",
"properties": {
"age": {
"type": "string",
"description": "19"
},
"image": {
"type": "string",
"description": "hhttps://gateway.pinata.cloud/ipfs/QmQPo8X32C1NnpqjwckxyAHpmXyoJk1G1x4fu5GLcxLqVG"
},
"course": {
"type": "string",
"description": "Computer Science"
}
}
}
然后把这个文件上传到 Pinata 上。这将为你提供一个储存元数据的 IPFS 链接。
使用该链接来铸造你的 NFT 代币。
4.5 将你的钱包地址和 tokenURI 传给safeMint函数来铸造你的 Soulbound token。
然后点击写按钮。
现在你可以看到我们的 Soulbound 代币已经被铸造了。使用提供的交易哈希值来查看代币的信息:
在这里你可以看到在Token transferred 中,可以发现了ERC721 转账。
4.6 如果你看到高级标签,你可以看到代币已经在用户提供的地址被铸造了。
你可以使用 URI 值并在浏览器上搜索,你会获得刚刚提供的代币的元数据:
SoulBond 代币的 USP。这就是 SoulBond 的 "SoulBond "之处
Soulbound 代币主要是作为身份代币,只能有一个主人。
但是,即使在身份代币中,我们也可能需要更新任何新的数据到其中。因此,我们不打算铸造一个新的代币,而是更新同一个代币的元数据。
让我们了解一下我们如何更新已铸造的代币的元数据。
4.7 打开 Pinata,点击编辑元数据选项,添加你想添加到元数据的键值对。
这将在一定时间内将上述键值对添加到你的元数据中,你不需要再铸造一个代币来添加元数据 😃。
Soulbounds 代币不仅仅是简单的 NFT,它有自己的优势,这使得它非常有吸引力。
要了解更多关于 BuildBear 的信息,请阅读这里文档[10]
从这里[11]获取上述 Github 代码。
BTW,如果你知道有谁会热衷于与 BuildBear 合作。请看一下这里[12]!!
本翻译由 Duet Protocol[13] 赞助支持。
原文链接:https://medium.com/buildbear/learn-how-to-code-your-own-soulbound-nft-smart-contract-a9aed1bee74f
[1]
登链翻译计划: https://github.com/lbc-team/Pioneer
[2]
翻译小组: https://learnblockchain.cn/people/412
[3]
Tiny 熊: https://learnblockchain.cn/people/15
[4]
另一篇文章: https://medium.com/buildbear/dude-i-just-deployed-my-own-nft-wt-f-9ef91c778af
[5]
代码在这里: https://github.com/BuildBearLabs/Tutorials/tree/main/soulbound-NFT-with-BuildBear
[6]
Where Localhost Fails: https://medium.com/p/492f1038883d
[7]
Win Web3 Hackathons, using BuildBear Testnet's analytics: https://medium.com/p/e67656093f9d
[8]
BuildBear App: https://home.buildbear.io/
[9]
BuildBear App: https://home.buildbear.io/
[10]
文档: https://bit.ly/bb-notion-docs
[11]
这里: https://github.com/BuildBearLabs/Tutorials/tree/main/soulbound-NFT-with-BuildBear
[12]
这里: https://bit.ly/buildbear-careers
[13]
Duet Protocol: https://duet.finance/?utm_souce=learnblockchain
Twitter:https://twitter.com/NUpchain
Discord:https://discord.gg/pZxy3CU8mh