了解稳定币的运作方式并创建自己的 USDC

  • BuildBear
  • 发布于 2024-01-26 17:19
  • 阅读 39

本文详细讲解了稳定币的工作原理,并以USDC为例,指导读者如何创建一个简化版的稳定币。教程涵盖了对USDC机制的深入介绍,且附带了代码示例和部署的步骤,适合开发者学习和实践。

了解稳定币的工作原理并创建你自己类似于 USDC 的版本

在本教程中,我们将深入探讨稳定币的工作原理,以 USDC 为例,并指导你创建一个具有类似功能的简化版本。

理解稳定币

稳定币是通常与现实世界资产(如美元或黄金)Hook的加密货币。它们的主要目的是提供一种在时间上保持稳定的加密货币价值。

USDC 介绍

USDC,美元币(USD Coin)的缩写,是一种旨在保持与美元价值Hook的稳定币。每个 USDC 旨在保持接近于 $1 的价值。

USDC 定价机制

USDC 依赖于 Circle 和 Centre 的开源法定货币稳定币基础设施。它以 1:1 的比例运作,意味着流通中的每一个 USDC 都完全由储备金支持,并可以兑换成美元。这种抵押方式确保了每 $1 的 USDC 背后都有相应的 $1 存在于银行账户中。这种稳定机制对其运作至关重要,并且可以在各种加密交易平台上观察到。

在本教程中,我们将重点关注稳定币操作的智能合约方面,提供有关其工作原理的见解。我们已经建立了一个存储有快速入门所需所有资源的代码库。

在你开始之前,请安装以下工具:

克隆此代码库并安装依赖项:

git clone <https://github.com/BuildBearLabs/StableCoin.git>
cd StableCoin
yarn install

创建你的私有沙盒:

yarn fork-bb

运行该命令后,选择你想要分叉的链。输入你希望从中分叉的区块号。等待 10 秒,你的沙盒将启动。沙盒的详细信息,如 RPC、Faucet 和 Explorer URL,将保存在 packages/buildbear/sandbox.json 中。

部署合约:

在继续进行部署之前,请确保在 packages/hardhat/deploy/00_deploy_your_stableCoin.ts 中做一个小的调整。传递给我们 stableCoin 合约的最终构造函数参数是所有者的地址,因此请确保将你的钱包地址用作所有者。

yarn deploy

该命令将合约部署并验证到 BuildBear 沙盒,位置在 packages/hardhat/contracts。根据你的需要自定义 packages/hardhat/deploy 中的部署脚本。

启动你的 NextJS 应用:

yarn start

访问你的应用程序: http://localhost:3000

使用 BuildBear faucet 来铸造 Native 和 ERC20 代币。 如下所示,可以直接通过 Scaffold-eth x BuildBear UI 铸造无限数量的 Native 和 ERC20 代币。

现在,让我们与我们的稳定币进行交互并探索其不同功能。

导航到“调试合约”页面以与已部署的合约进行交互。

目前,我们是稳定币的所有者,但不是铸造者。让我们使用 setMinter 函数将自己设为铸造者,如下所示。

接下来,让我们使用 mint 函数铸造代币。输入接收者的地址和值,然后在浏览器上确认交易。

使用 balance 函数检查你的余额。

现在,使用 transfer 函数将代币转到第二个地址。

让我们将一个地址列入黑名单,看看它是如何工作的。

现在,切换到被列入黑名单的地址并尝试转账。由于该地址被列入黑名单,你将无法转移代币,并且对所有人都是锁定的。

让我们暂停合约。

现在合同已暂停,用户不能执行交易。

现在,让我们了解智能合约。

合约特性:

稳定币属性:

  • namesymboldecimals:这些变量存储稳定币的名称、符号和小数位数,提供有关代币的基本信息。
  • totalSupply:跟踪稳定币的总供应量。

所有权和访问控制:

  • owner:存储智能合约所有者的地址。
  • paused:指示某些功能是否当前已暂停。
  • minters:将地址映射到其铸造权限。
  • blacklist:将地址映射到它们的黑名单状态。

修饰符:

  • notBlacklisted:确保调用者的地址未被列入黑名单。
  • onlyOwner:限制函数访问仅限合约的所有者。
  • onlyMinter:限制铸造功能的访问仅限具有铸造权限的地址。
  • notPaused:确保在合约暂停时不执行某些功能。

功能:

  • changeOwner:允许所有者更改合约所有者。
  • transferapprovetransferFrom:实施标准 ERC-20 代币转账功能,附加检查。
  • mint:允许铸造新代币,限制为具有铸造权限的地址。
  • setPaused:允许所有者暂停/恢复某些功能。
  • setMinter:允许所有者授予/撤销铸造权限。
  • setBlacklist:允许所有者列入黑名单/移除黑名单地址。

解释:

该智能合约提供了一个基本的稳定币基础,具有转账、批准、铸造和访问控制等功能。所有者可以控制各个方面,例如暂停功能、管理铸造权限和列入黑名单的地址。修饰符确保在允许执行功能之前满足某些条件。这是一个灵活且可扩展的合约,可以根据特定需求进一步自定义。

🎉 恭喜!

我们成功构建了一个基本的稳定币,赋予所有者监督铸造者、列入黑名单地址以及在必要时暂停代币转账的权力。🚀

结论: 使用 Scaffold-ETH-2 x BuildBear,你可以简化 Dapp 开发和测试,缩短开发时间,并加速进入生产环境。摆脱公共和本地 Hardhat 测试网络的局限性。

  • 通过 CLI 轻松分叉 EVM 和 EVM 兼容的链,创建你自己的沙盒。测试你的应用程序,就如同你在主网上一样,而没有现实世界的后果,为你节省寻找有效 RPC 的时间。
  • 直接通过 CLI 或你的个人沙盒 faucets 铸造无限的原生和 ERC20 代币。无需再浪费时间寻找有效的 faucets。
  • 在沙盒内使用内置的浏览器和交易追踪器轻松调试交易。
  • 在 BuildBear 上体验快速交易,完成时间少于 3 秒。

关于 BuildBear:

BuildBear 是一个专为 DApp 开发和测试而设计的平台。开发者可以在多个区块链网络上构建个性化的私有测试网沙盒。铸造无限数目的原生和 ERC20 代币,以及在 BuildBear 上快速的交易时间(少于 3 秒!)极大地提升了 DApp 的开发周期。该平台配备了实时测试和调试的工具,确保开发者能够轻松跟踪复杂的区块链交易。

与我们联系 Twitter | LinkedIn | Telegram | GitHub

作者:chandan

  • 原文链接: medium.com/buildbear/lea...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
BuildBear
BuildBear
https://medium.com/buildbear