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

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

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

有消息称 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 语言开发。

设计草案如下:

工具合约奖励部分

sui平台合约奖励机制

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

合约部分架构

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

arduino 复制代码
sui move new samv

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

  • samv

    • sources
    • Move.toml

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

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

ini 复制代码
[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版本多了很多内容 注意这句

arduino 复制代码
# edition = "2024.alpha"

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

bash 复制代码
UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING samv

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

rust 复制代码
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。

合约部分设计:

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

dApp部分

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

github部分

初步想法是:

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


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

想要参与的请联系我。

(未完待续)

Let's Move 中文社区

telegram: t.me/move_cn

QQ群: 79489587

相关推荐
EricWang135815 分钟前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
September_ning15 分钟前
React.lazy() 懒加载
前端·react.js·前端框架
web行路人25 分钟前
React中类组件和函数组件的理解和区别
前端·javascript·react.js·前端框架
超雄代码狂1 小时前
ajax关于axios库的运用小案例
前端·javascript·ajax
长弓三石1 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
小马哥编程1 小时前
【前端基础】CSS基础
前端·css
嚣张农民1 小时前
推荐3个实用的760°全景框架
前端·vue.js·程序员
周亚鑫2 小时前
vue3 pdf base64转成文件流打开
前端·javascript·pdf
Justinc.2 小时前
CSS3新增边框属性(五)
前端·css·css3
neter.asia2 小时前
vue中如何关闭eslint检测?
前端·javascript·vue.js