通过灵魂绑定 NFT 学习 BuildBear 的使用

通过灵魂绑定 NFT 学习 BuildBear 的使用, BuildBear 是一个非常方便测试节点平台。

译者注:BuildBear是一个很好平台,开发人员可以在BuildBear上创建自己的测试节点,并根据需求对其进行定制(如fork 主网),BuildBear 为测试节点提供了相应的浏览器,让我们了解交易背后发生了什么,使用BuildBear可以帮助团队一起进行大规模测试。

0_wwVI-9Et0JwVopQz.png

在编写SoulBound (灵魂绑定) NFT合约之前,让我们了解什么是SoulBound NFT以及它对我们有什么用。

Soulbound Token(SBT) 只是非同质的代币(NFT),一旦铸造,就不能转让或出售给其他人。

Soulbound Token可以帮助我们:

  • 创建一个可公开验证的系统,人们可以将他们的数字简历为SoulBound代币,这将有助于验证个人的工作历史并消除伪造。
  • 使得协议可以验证借款人的信用档案,评估他们的信用分数,以确定他们可以获得多少贷款。
  • 可以帮助签发教育证书,如驾驶执照、公司证书和其他核心的个人和职业证明。

以及更多

你可以使用SoulBound代币的想法:

  1. 在你的大学里,现在,用于增加考试成绩
  2. 在你的大学里作为身份识别标志使用
  3. 使用灵魂绑定NFT作为你的简历

因此,让我们不要再等待,现在就开始

1. 创建一个项目并安装依赖项

1.1: 在你的CLI(命令行)上使用以下命令来初始化你的项目:

mkdir soulbound-NFT-with-buildbear && cd soulbound-NFT-with-buildbear

1.2: 在你的CLI上运行npx hardhat命令,并选择创建一个Javascript对象;在所有选项中选择

一旦你成功地执行了上述命令,如果你在VS Code中打开这个repo,你应该有一个目录结构,类似于下面:

img

2. 编码你的Soulbound NFT合约

2.1: 在contracts文件夹中创建一个名为Soulbound.sol的文件。

2.2 我们使用了在另一篇文章中已经学到的ERC-721合约的代码。

你可以使用以下代码:

1_AH0W3ZZ366djRoPJD1-YpA.png

你甚至可以从我们的Github上获得上述代码,代码在这里

3. 部署和测试 SoulBound代币

现在,让我们用 BuildBear 把它部署在私有的测试网上,来玩玩这个合约。

3.1: 在BuildBear上创建一个私有测试网🐻‍❄️ (你问为什么是BuildBear?请看一下这里。Where Localhost FailsWin Web3 Hackathons, using BuildBear Testnet's analytics

3.1.1: 访问BuildBear App。一旦你用你的Github账户登录,你会看到一个类似于下面添加的图片的页面

img

在这里,为我们的程序创建一个简单的节点,所以我们将点击创建一个端点(Create an endpoint),我们将被重定向到节点配置页面。但在本文中,我们将使用默认配置来创建我们的节点。

所以我们将简单地点击 "创建(create)"按钮,如下所示。

img

恭喜你! 你已经创建了你的私人testnet节点!

你的页面应该被更新为类似以下的内容。

img

点击RPC URL(复制或点击查看)以获得到你的私有测试网的RPC。

3.2: 为了进行交易,我们需要来自faucet的资金。不要担心! 我们不需要到处找水龙头来获取测试用的以太币。

点击打开水龙头选项,添加你选择你的账户。

img

之后,点击水龙头页面右角的添加到Metamask选项。

你的metamask将立即提供 1000BB ETH。

3.3: 将hardhat.config.js更新为以下内容:

img

在网络中,我们已经创建了一个名为buildbear的网络,并在那里添加了我们的RPC URL,然后添加了metamask账户的私钥(请不要将你的私钥暴露给任何人,永远不要)。

现在我们的配置已经准备好了! 让我们来编写智能合约。

4. 使用BuildBear部署 Soulbound合约

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,一旦你创建了你的私人测试网)。你会看到你部署的合约。

img

4.3 现在打开你部署的地址,在合约标签下打开写合约标签

img

你可以看到在这里我们有所有的功能,我们已经包含在我们的合约中。

为了给我们的灵魂绑定代币铸币,我们将调用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。

img

然后点击按钮。

现在你可以看到我们的Soulbound代币已经被铸造了。使用提供的交易哈希值来查看代币的信息:

img

在这里你可以看到在Token transferred中,可以发现了ERC721转账

4.6 如果你看到高级标签,你可以看到代币已经在用户提供的地址被铸造了。

img

你可以使用URI值并在浏览器上搜索,你会获得刚刚提供的代币的元数据:

img

SoulBond代币的USP。这就是SoulBond的 "SoulBond "之处

Soulbound 代币主要是作为身份代币,只能有一个主人。

但是,即使在身份代币中,我们也可能需要更新任何新的数据到其中。因此,我们不打算铸造一个新的代币,而是更新同一个代币的元数据。

让我们了解一下我们如何更新已铸造的代币的元数据。

4.7 打开Pinata,点击编辑元数据选项,添加你想添加到元数据的键值对。

img

这将在一定时间内将上述键值对添加到你的元数据中,你不需要再铸造一个代币来添加元数据😃。

Soulbounds代币不仅仅是简单的NFT,它有自己的优势,这使得它非常有吸引力。

要了解更多关于BuildBear的信息,请阅读这里文档

这里获取上述Github代码。

BTW,如果你知道有谁会热衷于与BuildBear合作。请看一下这里!!


本翻译由 Duet Protocol 赞助支持。

点赞 1
收藏 5
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

你可能感兴趣的文章

相关问题

1 条评论

请先 登录 后评论
翻译小组
翻译小组
0x9e64...7c84
大家看到好的文章可以在 GitHub 提 Issue: https://github.com/lbc-team/Pioneer/issues 欢迎关注我的 Twitter: https://twitter.com/UpchainDAO