本文详细讲解了稳定币的工作原理,并以USDC为例,指导读者如何创建一个简化版的稳定币。教程涵盖了对USDC机制的深入介绍,且附带了代码示例和部署的步骤,适合开发者学习和实践。
在本教程中,我们将深入探讨稳定币的工作原理,以 USDC 为例,并指导你创建一个具有类似功能的简化版本。
稳定币是通常与现实世界资产(如美元或黄金)Hook的加密货币。它们的主要目的是提供一种在时间上保持稳定的加密货币价值。
USDC,美元币(USD Coin)的缩写,是一种旨在保持与美元价值Hook的稳定币。每个 USDC 旨在保持接近于 $1 的价值。
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
函数将代币转到第二个地址。
让我们将一个地址列入黑名单,看看它是如何工作的。
现在,切换到被列入黑名单的地址并尝试转账。由于该地址被列入黑名单,你将无法转移代币,并且对所有人都是锁定的。
让我们暂停合约。
现在合同已暂停,用户不能执行交易。
现在,让我们了解智能合约。
稳定币属性:
name
,symbol
,decimals
:这些变量存储稳定币的名称、符号和小数位数,提供有关代币的基本信息。totalSupply
:跟踪稳定币的总供应量。所有权和访问控制:
owner
:存储智能合约所有者的地址。paused
:指示某些功能是否当前已暂停。minters
:将地址映射到其铸造权限。blacklist
:将地址映射到它们的黑名单状态。修饰符:
notBlacklisted
:确保调用者的地址未被列入黑名单。onlyOwner
:限制函数访问仅限合约的所有者。onlyMinter
:限制铸造功能的访问仅限具有铸造权限的地址。notPaused
:确保在合约暂停时不执行某些功能。功能:
changeOwner
:允许所有者更改合约所有者。transfer
、approve
、transferFrom
:实施标准 ERC-20 代币转账功能,附加检查。mint
:允许铸造新代币,限制为具有铸造权限的地址。setPaused
:允许所有者暂停/恢复某些功能。setMinter
:允许所有者授予/撤销铸造权限。setBlacklist
:允许所有者列入黑名单/移除黑名单地址。该智能合约提供了一个基本的稳定币基础,具有转账、批准、铸造和访问控制等功能。所有者可以控制各个方面,例如暂停功能、管理铸造权限和列入黑名单的地址。修饰符确保在允许执行功能之前满足某些条件。这是一个灵活且可扩展的合约,可以根据特定需求进一步自定义。
🎉 恭喜!
我们成功构建了一个基本的稳定币,赋予所有者监督铸造者、列入黑名单地址以及在必要时暂停代币转账的权力。🚀
结论: 使用 Scaffold-ETH-2 x BuildBear,你可以简化 Dapp 开发和测试,缩短开发时间,并加速进入生产环境。摆脱公共和本地 Hardhat 测试网络的局限性。
BuildBear 是一个专为 DApp 开发和测试而设计的平台。开发者可以在多个区块链网络上构建个性化的私有测试网沙盒。铸造无限数目的原生和 ERC20 代币,以及在 BuildBear 上快速的交易时间(少于 3 秒!)极大地提升了 DApp 的开发周期。该平台配备了实时测试和调试的工具,确保开发者能够轻松跟踪复杂的区块链交易。
与我们联系 Twitter | LinkedIn | Telegram | GitHub
作者:chandan
- 原文链接: medium.com/buildbear/lea...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!