稳定币是一种旨在与法定货币或一篮子资产保持稳定价值的加密货币,广泛用于交易、借贷和价值存储。Sui 网络支持多种稳定币,为开发者与用户提供了多样化的选择。
Sui 支持的稳定币类型
Sui 网络上可使用的稳定币包括 USDC、USDT、Agora 和 Ondo USDY 等,每种稳定币都具有不同的特性和应用场景。
USDC(USD Coin)
USDC 是由受监管金融机构发行的完全抵押美元稳定币,每个 USDC 代币均由储备中持有的 1 美元支持。它广泛用于交易、支付和稳定价值存储。
USDT(Tether)
USDT(又称 Tether)是最早且使用最广泛的稳定币之一,与美元挂钩,并由现金、现金等价物和其他资产混合支持。目前 USDT 并非在 Sui 上原生发行,需通过跨链桥接入。
Agora
AUSD 是由 Agora Finance 发行的完全抵押美元稳定币,专注于提供稳定的数字资产解决方案。
Ondo USDY
USDY 是由 Ondo Finance 发行的完全抵押美元稳定币,允许用户从美国国债票据中获得收益。
在 Sui 上使用 USDC 的实践指南
以下指南以 USDC 为例,但同样适用于任何使用 Sui Coin 标准的资产。
准备工作
- 确保您拥有一些 USDC 代币。测试网代币可从官方水龙头获取。
USDC 稳定币源代码
USDC 稳定币的源代码位于 circlefin/stablecoin-sui 仓库中,开发者可参考其实现细节。
在 Move 包中导入 USDC 模块
在 Move 包的 Move.toml 文件中的 [dependencies] 部分添加以下代码以导入 USDC 模块:
usdc = { git = "https://github.com/circlefin/stablecoin-sui.git", subdir = "packages/usdc", rev = "master" }导入后,您的 Move 包结构应如下所示:
[package]
name = "usdc_usage"
edition = "2024.beta"
[dependencies]
Sui = { override = true, local = "../../../crates/sui-framework/packages/sui-framework" }
usdc = { git = "https://github.com/circlefin/stablecoin-sui.git", subdir = "packages/usdc", rev = "master" }
[addresses]
usdc_usage = "0x0"注意:usdc 包使用了特定版本的 sui 包,可能导致版本冲突。您可以在 Move.toml 文件中通过添加 override = true 标志来覆盖 Sui 包的版本。
在 Move 中使用 USDC
USDC 使用 Sui Coin 标准,可以像任何其他代币类型一样在 Sui 框架中使用。导入 usdc 包后,您可以直接使用 USDC 类型。
以下示例展示了如何在 Move 包中使用 USDC 稳定币:
module usdc_usage::example;
use sui::coin::Coin;
use sui::sui::SUI;
use usdc::usdc::USDC;
public struct Sword has key, store {
id: UID,
strength: u64,
}
public fun buy_sword_with_usdc(coin: Coin<USDC>, ctx: &mut TxContext): Sword {
let sword = create_sword(coin.value(), ctx);
transfer::public_transfer(coin, @0x0);
sword
}在 PTB 中使用 USDC
在可编程交易块(PTB)中,USDC 可以像任何其他代币类型一样使用。通过 coinWithBalance 函数创建 Coin<USDC> 对象:
const usdcCoin = coinWithBalance({
type: '0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC',
balance: 1_000_000
})提示:0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29 是 USDC 的测试网地址,而 0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7 是主网地址。
该代币对象可用作任何接受 Coin<USDC> 或通用 Coin 参数的函数的输入:
const [sword] = tx.moveCall({
target: '0xcbbf37a851ed7b625731ca497e2d4aea18cf18145fac3b78bd64f274f6a09d30::usdc_usage::buy_sword_with_usdc',
arguments: [usdcCoin]
});此外,代币对象也可用于 transferObjects 函数:
tx.transferObjects([usdcCoin], recipientAddress);常见问题
什么是稳定币?
稳定币是一种与法定货币(如美元)或一篮子资产挂钩的加密货币,旨在减少价格波动,提供稳定的价值存储和交易媒介。
如何在 Sui 上获取 USDC?
您可以通过官方水龙头获取测试网 USDC 代币,或通过跨链桥将主网 USDC 转入 Sui 网络。
USDC 和 USDT 在 Sui 上有何区别?
USDC 是 fully collateralized 且受监管的稳定币,而 USDT 需通过跨链桥接入 Sui。两者在支持方式和应用场景上略有不同。
如何在 Move 中处理通用代币?
您可以使用 Sui Coin 标准处理任何代币类型,包括 USDC 和其他稳定币。通过泛型编程实现代币的通用操作。
👉 获取进阶开发方法
Sui 上稳定币的主要应用场景有哪些?
稳定币在 Sui 上可用于去中心化交易、借贷协议、支付解决方案和游戏内经济系统等场景。
如何确保稳定币操作的安全性?
建议使用官方提供的代码库和工具,并在生产环境中避免将代币转移至无效地址。同时,关注官方文档和安全最佳实践。