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

相关推荐
小远yyds32 分钟前
鸿蒙手势密码
前端·华为·harmonyos·arkts
高木的小天才36 分钟前
HarmonyOS应用开发中的页面路由与数据传输
前端·华为·typescript·harmonyos
木子七1 小时前
vue3-Pinia
前端·vue
前端金熊1 小时前
前端实现画中画超简单,documentPictureInPicture详细教程
前端·javascript
前端青山1 小时前
vue常用特性
前端·javascript·vue.js·前端框架
huazi991 小时前
全面解析:HTML页面的加载全过程(七)--浏览器渲染之绘制\分块\ 光栅化\画
前端
sp42a2 小时前
老旧前端项目如何升级工程化的项目
前端·webpack·重构
程序员吾真本2 小时前
🦀 新手必看!小小白也能用Rust点亮LED,入门嵌入式开发(上)
rust·嵌入式
李小白202002022 小时前
Linux 生成/proc/config.gz
linux·服务器·前端
前端小臻3 小时前
后台管理-动态路由配置以及用户权限管理(vue3+element plus+koa+Sequelize )
前端·网络·node.js·koa