Let‘s Move 从0开始开发Sui工具类应用 (1)

Let’s Move 从0开始开发Sui工具类应用 (1)

本系列开始讲述sui平台工具类应用的0基础的开发

suiassistant_chapter_1

有消息称 Sui官方的黑客松将要启航了

(具体日期请关注Sui官网)

最近Sui平台就要开始黑客松了,本次黑客松包含了很多课题。

Sui 黑客松大赛

主要有7个赛道:

  • 基础工具
  • zklogin
  • 游戏
  • Move高级特性
  • DeFi
  • 随机数
  • 移动端和大众应用

相信很多小伙伴们都跃跃欲试了吧?(奖金非常诱人哦)

今天Summer.XJ给大家带来一个Sui工具类应用的开发基础教程,目的是让大家可以快速了解掌握Sui平台的应用开发。

由此抛砖引玉,希望大家从中能爆发出更多的灵感和想法,积极参与到黑客松当中去。 灵感来自于 rzexin 大佬的 《SUI Move开发必知必会——SUI Move常用命令之client(网络交互命令)》

有兴趣的朋友可以先拜读一下。

我计划的工具类开发,主要包含以下内容:

  1. 工具本身 一个命令行提示工具(带界面UI的窗口工具)
  2. 合约奖励 结合sui平台合约奖励机制,开发一个合约,用来激励开发者
  3. dApp 开发一个dApp,用来后台管理
  4. github 多人协作开发和维护

工具本身部分

项目名: Sui Assistant (暂定)

概要分析,目前sui命令行已经有很多指令,这些指令需要用户自己记忆和总结,容易前用后忘。 所以,我们开发一个sui助手工具,帮助用户快速使用sui指令。 核心思想就是,

  1. 用户输入命令,然后sui助手工具自动生成对应的指令。
  2. 通过查询功能获取对应指令的参数和用法。
  3. 参考官方文档和一些第三方教程来丰富指令集。
  4. 初步计划使用 rust 语言开发。

设计草案如下: SuiAssistant设计草案

工具合约奖励部分

sui平台合约奖励机制

  • 贡献者获得Sui代币 : 为工具数据库提供正确数据或完善工具功能
  • 开发者获得Sui代币 : 提供工具的全部开发工作
  • 社区获得Sui代币 : 社区对工具的宣传推广
  • 工具盈利模式 : 广告收入

合约部分架构

首先 使用sui cli 建立合约框架

sui move new samv

samv是给本次工具集的合约目录名称,执行成功的话会生成以下目录和文件

  • samv

    • sources
    • Move.toml

soucres目录下是合约源文件,目前里面没有任何内容,Move.toml是sui的配置文件。

新版本的sui生成的Move.toml文件内容如下:

[package]
name = "samv"

# edition = "2024.alpha" # To use the Move 2024 edition, currently in alpha
...

[dependencies]
Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" }

...

[addresses]
samv = "0x0"
...

[dev-dependencies]
...

[dev-addresses]
...

生成的toml文件比以前的sui版本多了很多内容 注意这句

# edition = "2024.alpha"

toml文件的注释是#,意思是#后面的内容是注释。目前2024语法暂未正式发布,所以需要指定alpha版本。 我们尝试一下老语法情况下的编译情况。

UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING samv

各位同学编译的时候有可能碰到

82 │         let scaled_numerator = numerator as u128 << 64;
   │                                          ^^
   │                                          │
   │                                          Unexpected 'as'
   │                                          Expected ';'

error[E03003]: unbound module member
   ┌─ C:Users\Administrator.move\https___github_com_MystenLabs_sui_git_testnet\crates\sui-framework\packages\sui-framework\sources\address.move:43:9

这个问题是因为sui的版本问题, 请使用 1.22.1 版本。因为目前sui的testnet版本已经达到了1.22.1。

合约部分设计:

  • 数据库贡献者列表
    struct Contributors has store{
        user:address,
        score:u64
    }
  • 奖励统计表
    public fun Bonuses()
        
  • 奖励发放
    public fun Distributebonuses(){
        ...
    }

dApp部分

采用官方的dApp开发框架做后台管理界面。 SuiAssistant后台管理界面

github部分

初步想法是:

参与者把指令集和简介已json的形式提交到相应的github仓库。 管理员负责合并和记录。


以上是本章全部了,如果感兴趣的请继续关注后续文章。

想要参与的请联系我。

(未完待续)

Let’s Move 中文社区

telegram: https://t.me/move_cn

QQ群: 79489587

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值