Move on Sui入门 002-hello world 入门

  • Gavin
  • 更新于 2024-11-21 14:32
  • 阅读 345

一、几个sui常用命令及使用须知目前sui有Mainnet、Devnet、Testnet三个网络。因为发布sui合约需要花费gas费(需要买SUI币),建议初学者先在Testnet网络学习,在Testnet网络通过SUI水龙头获取一定的SUI币,在程序调试正确后再切换Mainnet网络正式发布。

一、几个sui常用命令及使用须知

目前sui有Mainnet、Devnet、Testnet三个网络。因为发布sui合约需要花费gas费(需要买SUI币),建议初学者先在Testnet网络学习,在Testnet网络通过SUI水龙头获取一定的SUI币,在程序调试正确后再切换Mainnet网络正式发布。

  1. 本地创建钱包地址,Testnet网络获取gas

001-Windows系统开发准备学习完之后,打开终端,输入命令:sui client envs,会提示创建本地sui配置文件client.yaml,并创建一个sui钱包地址,一直enter(回车)创建即可。

创建完成后,再次运行sui client envs,查看sui网络环境及当前使用网络,出现如下内容:

18a69d0e0bb8a592cdfc3e82ddbab60.png 运行sui client addresses,查看sui钱包地及当前使用钱包地址,出现如下内容:

6cb30f357029260d58da77366fdc883.png

运行sui client gas,查看sui钱包中的sui币数量,出现如下内容:

1731316689507.jpg

一般新创建钱包需要使用sui水龙头获取sui币,运行sui client faucet,可以获取,只能在测试网使用。

此时,本地运行环境为Testnet网络,并且已经有了sui钱包地址和SUI币,并且创建的钱包地址在Mainnet及Devnet网络上也存在,但没有SUI币。

  1. 将本地创建的钱包地址导入Sui Wallet

运行命令sui keytool export --key-indentify <local address>,获取本地钱包地址的详细信息

1732086918399.png

然后打开Sui Wallet,选择添加,Import Private Key方式,就可成功添加本地钱包地址,这样可以更直观的查看钱包数据。

  1. 将Sui Wallet钱包插件生成的地址导入本地

运行命令sui keytool import "Private Key" scheme,即可在本地导入一个已创建的钱包地址。 Private key是Sui Wallet插件生成地址的私钥。

  1. 本地添加Mainnet、Devnet网络

运行命令sui client new-env --alias <网络别名> --rpc <网络地址>,可以在本地添加对应的sui网络

Testnet:https://fullnode.testnet.sui.io:443

Devnet:https://fullnode.devnet.sui.io:443

Mainnet:https://fullnode.mainnet.sui.io:443

执行命令之后可运行sui client envs查看

  1. 切换本地sui网络

运行命令sui client switch --env <网络别名>,切换本地sui网络

  1. 查看当前网络

运行命令sui client active-env,可查看当前本地网络

  1. 钱包地址相关命令

创建一个新地址:sui client new-address ed25519

切换地址:sui client switch --address <new address>

查看当前地址:sui client active-address

二、编写第一个move程序

使用命令sui move new helloWorld,创建第一个项目

项目结构认识:

  • sources:合约源代码文件
  • test:测试用例文件
  • Move.toml:项目的配置文件

在helloworld.move文件中输入代码

module helloworld::helloworld {
    use std::ascii::{String, string};
    use sui::object::{Self,UID};
    use sui::transfer::transfer;
    use sui::tx_context::{TxContext, sender};

    public struct Hello has key{
        id:UID,
        say: String
    }

    fun init(ctx: &mut TxContext) {
        let hello_world = Hello {
            id:object::new(ctx),
            say: string(b"hello world"),
        };
        transfer(hello_world, sender(ctx));
    }
}

修改配置文件Move.toml中依赖地址 https://github.com/MystenLabs/sui.githttps://gitee.com/MystenLabs/sui.git, 防止出现网络依赖加载问题。

编译项目,sui move build,未出现红色报错即为编译成功。

发布项目,sui client publish,出现发布项目hash即为发布成功。

1731318748340.png

三、在sui浏览器上查看

打开sui浏览器,切换到Testnet网络,输入发布项目的hash可查看发布合约具体信息。

1731397850605.jpg

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Gavin
Gavin
0xAA3C...A0dD
江湖只有他的大名,没有他的介绍。