用Sui Move 制作 Coins

在这个教程中,我们将学习如何使用 Sui Move 开发一个币并在 Sui 网络上部署它。

用Sui Move 制作 Coins
一键发币: 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翻译整理,转载请标明出处

免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。
通过 NowPayments 打赏