Skip to content

Commit

Permalink
Merge pull request #2172 from happy-zhangbo/main
Browse files Browse the repository at this point in the history
task1 code
  • Loading branch information
uvd authored Dec 25, 2024
2 parents d91cecf + 9ef8f52 commit f0aa530
Show file tree
Hide file tree
Showing 14 changed files with 283 additions and 0 deletions.
1 change: 1 addition & 0 deletions mover/happy-zhangbo/coLearn2411/images/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

1 change: 1 addition & 0 deletions mover/happy-zhangbo/coLearn2411/project/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

53 changes: 53 additions & 0 deletions mover/happy-zhangbo/coLearn2411/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@


## b站,推特关注

- [] b站,推特关注截图: ![关注截图](./images/你的图片地址)

## 为共学营宣传(在朋友圈或者群聊中转发海报/文章)

- [] 宣传截图:![宣传截图](./images/你的图片地址)

## 每周课程学习

- [] 第一周:![学习记录截图](./images/你的图片地址)
- [] 第二周:![学习记录截图](./images/你的图片地址)
- [] 第三周:![学习记录截图](./images/你的图片地址)
- [] 第四周:![学习记录截图](./images/你的图片地址)

## 参加直播答疑

- [] 第一周:![学习记录截图](./images/你的图片地址)
- [] 第二周:![学习记录截图](./images/你的图片地址)
- [] 第三周:![学习记录截图](./images/你的图片地址)
- [] 第四周:![学习记录截图](./images/你的图片地址)

## 群里分享学习笔记

- [] 第一篇笔记
- [] 第二篇笔记
- [] 第三篇笔记
- [] 第四篇笔记

## 对外输出学习笔记

- [] 第一篇笔记【学习笔记链接】
- [] 第二篇笔记【学习笔记链接】
- [] 第三篇笔记【学习笔记链接】
- [] 第四篇笔记【学习笔记链接】

## 在HOH社区公众号发布自己的技术文章

- [] 第一篇笔记【公众号文章链接】
- [] 第二篇笔记【公众号文章链接】
- [] 第三篇笔记【公众号文章链接】
- [] 第四篇笔记【公众号文章链接】

## 直播分享学习技巧/工具推荐

- [] 会议截图:![会议记录截图](./images/你的图片地址)

## 提交项目

- [] 项目提交![项目截图](./images/你的图片地址)

Empty file.
1 change: 1 addition & 0 deletions mover/happy-zhangbo/code/task1/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/*
34 changes: 34 additions & 0 deletions mover/happy-zhangbo/code/task1/Move.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# @generated by Move, please check-in and do not edit manually.

[move]
version = 3
manifest_digest = "2E267C18D553336099CDD31F7063857679825E46CD06EC67CC7F7FB0C20317C1"
deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
dependencies = [
{ id = "Sui", name = "Sui" },
]

[[move.package]]
id = "MoveStdlib"
source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates\\sui-framework\\packages\\move-stdlib" }

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

dependencies = [
{ id = "MoveStdlib", name = "MoveStdlib" },
]

[move.toolchain-version]
compiler-version = "1.39.0"
edition = "2024.beta"
flavor = "sui"

[env]

[env.testnet]
chain-id = "4c78adac"
original-published-id = "0xa2675552b511e7145aa53865fdc10694d547e4b1b802a5900e6c07c6126b616a"
latest-published-id = "0xa2675552b511e7145aa53865fdc10694d547e4b1b802a5900e6c07c6126b616a"
published-version = "1"
37 changes: 37 additions & 0 deletions mover/happy-zhangbo/code/task1/Move.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[package]
name = "task1"
edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move
# license = "" # e.g., "MIT", "GPL", "Apache 2.0"
# authors = ["..."] # e.g., ["Joe Smith (joesmith@noemail.com)", "John Snow (johnsnow@noemail.com)"]

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

# For remote import, use the `{ git = "...", subdir = "...", rev = "..." }`.
# Revision can be a branch, a tag, and a commit hash.
# MyRemotePackage = { git = "https://some.remote/host.git", subdir = "remote/path", rev = "main" }

# For local dependencies use `local = path`. Path is relative to the package root
# Local = { local = "../path/to" }

# To resolve a version conflict and force a specific version for dependency
# override use `override = true`
# Override = { local = "../conflicting/version", override = true }

[addresses]
task1 = "0x0"

# Named addresses will be accessible in Move as `@name`. They're also exported:
# for example, `std = "0x1"` is exported by the Standard Library.
# alice = "0xA11CE"

[dev-dependencies]
# The dev-dependencies section allows overriding dependencies for `--test` and
# `--dev` modes. You can introduce test-only dependencies here.
# Local = { local = "../path/to/dev-build" }

[dev-addresses]
# The dev-addresses section allows overwriting named addresses for the `--test`
# and `--dev` modes.
# alice = "0xB0B"

70 changes: 70 additions & 0 deletions mover/happy-zhangbo/code/task1/sources/task1.move
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/*
/// Module: task1
module task1::task1;
*/

// For Move coding conventions, see
// https://docs.sui.io/concepts/sui-move-concepts/conventions

module task1::task1 {
use std::string;
use sui::event; // 新增:用于发送事件
use sui::clock::{Self, Clock}; // 新增:使用时钟

// 定义事件结构
struct MessageContentEvent has copy, drop {
content: string::String,
created_at: u64
}

/// 定义一个包含消息的结构体
public struct Message has key, store {
id: sui::object::UID,
content: string::String,
created_at: u64 // 新增:创建时间
}

/// 创建消息对象
public entry fun create_message(clock: &Clock, ctx: &mut sui::tx_context::TxContext) {
let message = Message {
id: sui::object::new(ctx),
content: string::utf8(b"happy-zhangbo"),
created_at: clock::timestamp_ms(clock) // 添加时间戳
};

// 发出创建事件
event::emit(MessageContentEvent {
content: string::utf8(b"happy-zhangbo"),
created_at: clock::timestamp_ms(clock)
});

sui::transfer::transfer(message, sui::tx_context::sender(ctx));
}

/// 获取消息内容的公共函数
public fun get_content(message: &Message): string::String {
message.content
}

/// 获取创建时间
public fun get_created_at(message: &Message): u64 {
message.created_at
}

/// 通过事件方式获取消息内容
public entry fun emit_content(message: &Message) {
event::emit(MessageContentEvent {
content: get_content(message),
created_at: get_created_at(message)
});
}

/// 新增:查看消息内容的入口函数s
public entry fun view_message(message: &Message) {
let _content = get_content(message);
// 在 Move 中,我们无法直接打印内容
// 但可以通过事件或前端获取
}
}


30 changes: 30 additions & 0 deletions mover/happy-zhangbo/code/task1/tests/task1_tests.move
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#[test_only]
module task1::task1_tests {
use sui::test_scenario;
use task1::task1::{Self, Message};

#[test]
fun test_create_message() {
// 创建测试场景并设置测试账户
let owner = @0xA;
let mut scenario_val = test_scenario::begin(owner);
let scenario = &mut scenario_val;

// 第一个交易:创建消息
test_scenario::next_tx(scenario, owner);
{
task1::create_message(test_scenario::ctx(scenario));
};

// 第二个交易:验证消息内容
test_scenario::next_tx(scenario, owner);
{
let message = test_scenario::take_from_sender<Message>(scenario);
let content = task1::get_content(&message);
assert!(content == std::string::utf8(b"happy-zhangbo"), 0);
test_scenario::return_to_sender(scenario, message);
};

test_scenario::end(scenario_val);
}
}
Binary file added mover/happy-zhangbo/images/scan.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mover/happy-zhangbo/images/wallet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file.
55 changes: 55 additions & 0 deletions mover/happy-zhangbo/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
## 基本信息
- Sui钱包地址: `0x594c18e0ea06a600eabd75b3d18f59271d69bb0ad27f07950509546874462098`
> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址
- github: `happy-zhangbo`

## 个人简介
- 工作经验: 2年
- 技术栈: `Java` `Javascript` `Solidity`
> 重要提示 请认真写自己的简介
- 多年web2开发经验,之前研究以太坊, 现在做游戏.
- 联系方式: tg: `https://t.me/BALL_RICH`

## 任务

## 01 hello move
- [] Sui cli version: sui 1.39.0-3d8b6a864c11
- [] Sui钱包截图: ![Sui钱包截图](./images/wallet.png)
- [] package id: 0xa2675552b511e7145aa53865fdc10694d547e4b1b802a5900e6c07c6126b616a
- [] package id 在 scan上的查看截图:![Scan截图](./images/scan.png)

## 02 move coin
- [] My Coin package id :
- [] Faucet package id :
- [] 转账 `My Coin` hash:
- [] `Faucet Coin` address1 mint hash:
- [] `Faucet Coin` address2 mint hash:

## 03 move NFT
- [] nft package id :
- [] nft object id :
- [] 转账 nft hash:
- [] scan上的NFT截图:![Scan截图](./images/你的图片地址)

## 04 Move Game
- [] game package id :
- [] deposit Coin hash:
- [] withdraw `Coin` hash:
- [] play game hash:

## 05 Move Swap
- [] swap package id :
- [] call swap CoinA-> CoinB hash :
- [] call swap CoinB-> CoinA hash :

## 06 Dapp-kit SDK PTB
- [] save hash :

## 07 Move CTF Check In
- [] CLI call 截图 : ![截图](./images/你的图片地址)
- [] flag hash :

## 08 Move CTF Lets Move
- [] proof :
- [] flag hash :

1 change: 1 addition & 0 deletions mover/happy-zhangbo/scan/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

0 comments on commit f0aa530

Please sign in to comment.