前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过灵魂绑定 NFT 学习 BuildBear 的使用

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

作者头像
Tiny熊
发布2023-01-09 17:42:22
7660
发布2023-01-09 17:42:22
举报
文章被收录于专栏:深入浅出区块链技术

译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3]

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

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

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

Soulbound Token 可以帮助我们:

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

_以及更多_。

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

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

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

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

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

代码语言:javascript
复制
mkdir soulbound-NFT-with-buildbear && cd soulbound-NFT-with-buildbear

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

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

2. 编码你的 Soulbound NFT 合约

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

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

你可以使用以下代码:

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

3. 部署和测试 SoulBound 代币

现在,让我们用 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. 使用 BuildBear 部署 Soulbound 合约

4.1: 使用下面的脚本来部署你的 souolbound 合约。

代码语言:javascript
复制
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,运行以下命令:

代码语言:javascript
复制
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 文件,并在其中添加以下数据:

代码语言:javascript
复制
{
    "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

Twitterhttps://twitter.com/NUpchain

Discordhttps://discord.gg/pZxy3CU8mh

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深入浅出区块链技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 创建一个项目并安装依赖项
  • 2. 编码你的 Soulbound NFT 合约
  • 3. 部署和测试 SoulBound 代币
  • 4. 使用 BuildBear 部署 Soulbound 合约
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档