用Sui Move 制作 Coins
在这个教程中,我们将学习如何使用 Sui Move 开发一个币并在 Sui 网络上部署它。
一键发币: SOL | BNB | ETH | BASE | Blast | ARB | OP | POLYGON | AVAX | FTM | OK
在这个教程中,我们将学习如何使用 Sui Move 开发一个币并在 Sui 网络上部署它。
首先,让我们在终端中使用此命令创建一个新的 Sui Move 项目:
sui move new mycoin
如果你的本地机器上没有安装 Sui 二进制文件,可以使用MoveStudio部署 Sui Move 合约,它类似于 以太坊的remix。
让我们在项目中创建一个名为 Mycoin.move
的move文件(你可以随意命名)。
现在让我们开始编码。首先,我们导入有助于我们实现最终目标的依赖项:
module mycoin::my_coin {
use std::option;
use sui::coin;
use sui::transfer;
use sui::tx_context::{Self, TxContext};
我们定义一个结构:
struct MY_COIN has drop {}
币的类型标识符。币将具有如下类型: Coin<package_object::mycoin::MYCOIN>
。还要确保类型的名称与模块的名称相匹配。
现在我们定义一个 init
函数,它类似于 Solidity 中的构造函数 constructor()
—一旦发布包(智能合约),就会调用它。
在我们的 init
函数中, create_currency
方法将部署名为 MYCOIN 的币,带有 6 位小数。
此外,我们还有 mint_and_transfer
函数,它将向发布者地址发送 TreasuryCap
对象。拥有 treasury cap 对象,基本上你可以控制铸造和销毁:
fun init(witness: MY_COIN, ctx: &mut TxContext) {
let (treasury, metadata) = coin::create_currency(witness, 6, b"MYCOIN", b"", b"", option::none(), ctx);
transfer::public_freeze_object(metadata);
coin::mint_and_transfer(&mut treasury, 1000000000000, tx_context::sender(ctx), ctx);
transfer::public_transfer(treasury, tx_context::sender(ctx))
}
}
最终源代码应如下所示:
module mycoin::my_coin {
use std::option;
use sui::coin;
use sui::transfer;
use sui::tx_context::{Self, TxContext};
struct MY_COIN has drop {}
fun init(witness: MY_COIN, ctx: &mut TxContext) {
let (treasury, metadata) = coin::create_currency(witness, 6, b"MYCOIN", b"", b"", option::none(), ctx);
transfer::public_freeze_object(metadata);
coin::mint_and_transfer(&mut treasury, 1000000000000, tx_context::sender(ctx), ctx);
transfer::public_transfer(treasury, tx_context::sender(ctx))
}
}
让我们使用以下命令构建源代码:
sui move build
运行上述构建命令后,你应该会在项目内部看到 build/
目录
如果生成时没有错误,就可以将你的币发布到想要的任何网络:
sui move publish --gas-budget 100000000 .
注意:
1. 我使用devnet
发布智能合约,并使用 100000000 gas 来发布它。如果你要部署到主网或测试网,可能需要调高这个值。
2. 我在发布命令的最后添加了一个点,因为我已经在sources/
目录中。
要查看更多 Sui CLI 命令,例如如何添加和切换到不同的网络,可以查看 Sui cookbook。
运行 sui move publish
命令后,你应该会在终端中看到一个包 ID。
可以在 suiscan.com 上查看并使用 TreasuryCap。
原文链接:Create and deploy a Coin on Sui Network with Sui Move
DefiPlot翻译整理,转载请标明出处
免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。