From df3197e6a6e608f478d71f85712172501bb1c2be Mon Sep 17 00:00:00 2001 From: wsc <386180127@qq.com> Date: Sat, 29 Jun 2024 19:42:01 +0800 Subject: [PATCH 1/2] task1 --- mover/uvd/code/readme.md | 0 mover/uvd/images/img.png | Bin 0 -> 33914 bytes mover/uvd/notes/readme.md | 0 mover/uvd/readme.md | 54 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 mover/uvd/code/readme.md create mode 100644 mover/uvd/images/img.png create mode 100644 mover/uvd/notes/readme.md create mode 100644 mover/uvd/readme.md diff --git a/mover/uvd/code/readme.md b/mover/uvd/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/uvd/images/img.png b/mover/uvd/images/img.png new file mode 100644 index 0000000000000000000000000000000000000000..396d3dff7e627ff49a50b8e502d60f44f0e7928b GIT binary patch literal 33914 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

;UV9z1_AAGONM<~w-iOcK!}?9caiHJrVltS+QY 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 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `自己的githubid` + +## 个人简介 +- 工作经验: x年 +- 技术栈: `Rust` `C++` +> 重要提示 请认真写自己的简介 +- 多年web2开发经验,对Move特别感兴趣,想通过Move入门区块链 +- 联系方式: tg: `xxx` + +## 任务 + +## 01 hello move +- [x] Sui cli version:sui 1.28.0-0c2a7347e948 +- [x] Sui钱包截图: ![Sui钱包截图](./images/img.png) +- [x] package id: oxxxxx +- [x] package id 在 scan上的查看截图:![Scan截图](./images/你的图片地址) + +## 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 : From 15e3142d42e0899afc3cdb8868c0af97bdfc3502 Mon Sep 17 00:00:00 2001 From: uvd <386180127@qq.com> Date: Wed, 31 Jul 2024 21:20:47 +0800 Subject: [PATCH 2/2] feat: task1 --- mover/002/code/hello_move/Move.lock | 34 +++++++++++++++++ mover/002/code/hello_move/Move.toml | 37 +++++++++++++++++++ .../code/hello_move/sources/hello_move.move | 21 +++++++++++ mover/002/code/hello_move/test.sh | 7 ++++ .../hello_move/tests/hello_move_tests.move | 19 ++++++++++ 5 files changed, 118 insertions(+) create mode 100644 mover/002/code/hello_move/Move.lock create mode 100644 mover/002/code/hello_move/Move.toml create mode 100644 mover/002/code/hello_move/sources/hello_move.move create mode 100644 mover/002/code/hello_move/test.sh create mode 100644 mover/002/code/hello_move/tests/hello_move_tests.move diff --git a/mover/002/code/hello_move/Move.lock b/mover/002/code/hello_move/Move.lock new file mode 100644 index 000000000..c0deab4c2 --- /dev/null +++ b/mover/002/code/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 2 +manifest_digest = "15C92DB7143AE506431E8FE14625189CE312456B12D01A47D7711D0BFBD6A124" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { name = "Sui" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[move.toolchain-version] +compiler-version = "1.29.2" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0x93753495e772949720f730e4716aea3776ad1e4e6bafc0dd8b66ea19f66d0333" +latest-published-id = "0x93753495e772949720f730e4716aea3776ad1e4e6bafc0dd8b66ea19f66d0333" +published-version = "1" diff --git a/mover/002/code/hello_move/Move.toml b/mover/002/code/hello_move/Move.toml new file mode 100644 index 000000000..2fd3b0f2a --- /dev/null +++ b/mover/002/code/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_move" +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://gitee.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] +hello_move = "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" + diff --git a/mover/002/code/hello_move/sources/hello_move.move b/mover/002/code/hello_move/sources/hello_move.move new file mode 100644 index 000000000..d7f6ed97d --- /dev/null +++ b/mover/002/code/hello_move/sources/hello_move.move @@ -0,0 +1,21 @@ +module hello_move::hello { + 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_move = Hello { + id:object::new(ctx), + say: string(b"hello uvd"), + }; + + transfer(hello_move, sender(ctx)); + } +} diff --git a/mover/002/code/hello_move/test.sh b/mover/002/code/hello_move/test.sh new file mode 100644 index 000000000..b7e340f6d --- /dev/null +++ b/mover/002/code/hello_move/test.sh @@ -0,0 +1,7 @@ +curl --location --request POST 'https://faucet.testnet.sui.io/gas' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "FixedAmountRequest": { + "recipient": "0xea8d4d92129035ab7ce1b987b12143144f94f612f577d73b4d8ad93c1d1fc3d4" + } +}' \ No newline at end of file diff --git a/mover/002/code/hello_move/tests/hello_move_tests.move b/mover/002/code/hello_move/tests/hello_move_tests.move new file mode 100644 index 000000000..20e518b34 --- /dev/null +++ b/mover/002/code/hello_move/tests/hello_move_tests.move @@ -0,0 +1,19 @@ +/* +#[test_only] +module hello_move::hello_move_tests { + // uncomment this line to import the module + // use hello_move::hello_move; + + const ENotImplemented: u64 = 0; + + #[test] + fun test_hello_move() { + // pass + } + + #[test, expected_failure(abort_code = ::hello_move::hello_move_tests::ENotImplemented)] + fun test_hello_move_fail() { + abort ENotImplemented + } +} +*/