diff --git a/mover/2niuhe/2niuhe/co-learn-2411/images/bilibili_follow.png b/mover/2niuhe/2niuhe/co-learn-2411/images/bilibili_follow.png new file mode 100644 index 000000000..c74f7b35b Binary files /dev/null and b/mover/2niuhe/2niuhe/co-learn-2411/images/bilibili_follow.png differ diff --git a/mover/2niuhe/2niuhe/co-learn-2411/images/readme.md b/mover/2niuhe/2niuhe/co-learn-2411/images/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/2niuhe/2niuhe/co-learn-2411/project/readme.md b/mover/2niuhe/2niuhe/co-learn-2411/project/readme.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/mover/2niuhe/2niuhe/co-learn-2411/project/readme.md @@ -0,0 +1 @@ + diff --git a/mover/2niuhe/2niuhe/co-learn-2411/readme.md b/mover/2niuhe/2niuhe/co-learn-2411/readme.md new file mode 100644 index 000000000..7bdefcfef --- /dev/null +++ b/mover/2niuhe/2niuhe/co-learn-2411/readme.md @@ -0,0 +1,54 @@ +# 这个模板是2024年11月份的共学营才需要的 + +## b站,推特关注 + +- [✓] b站,推特关注截图: ![关注截图](./images/bilibili_follow.png) + +## 为共学营宣传(在朋友圈或者群聊中转发海报/文章) + +- [] 宣传截图:![宣传截图](./images/你的图片地址) + +## 每周课程学习 + +- [] 第一周:![学习记录截图](./images/你的图片地址) +- [] 第二周:![学习记录截图](./images/你的图片地址) +- [] 第三周:![学习记录截图](./images/你的图片地址) +- [] 第四周:![学习记录截图](./images/你的图片地址) + +## 参加直播答疑 + +- [] 第一周:![学习记录截图](./images/你的图片地址) +- [] 第二周:![学习记录截图](./images/你的图片地址) +- [] 第三周:![学习记录截图](./images/你的图片地址) +- [] 第四周:![学习记录截图](./images/你的图片地址) + +## 群里分享学习笔记 + +- [] 第一篇笔记 +- [] 第二篇笔记 +- [] 第三篇笔记 +- [] 第四篇笔记 + +## 对外输出学习笔记 + +- [] 第一篇笔记【学习笔记链接】 +- [] 第二篇笔记【学习笔记链接】 +- [] 第三篇笔记【学习笔记链接】 +- [] 第四篇笔记【学习笔记链接】 + +## 在HOH社区公众号发布自己的技术文章 + +- [] 第一篇笔记【公众号文章链接】 +- [] 第二篇笔记【公众号文章链接】 +- [] 第三篇笔记【公众号文章链接】 +- [] 第四篇笔记【公众号文章链接】 + +## 直播分享学习技巧/工具推荐 + +- [] 会议截图:![会议记录截图](./images/你的图片地址) + +## 提交项目 + +- [] 项目提交![项目截图](./images/你的图片地址) + + diff --git a/mover/2niuhe/2niuhe/code/readme.md b/mover/2niuhe/2niuhe/code/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/2niuhe/2niuhe/code/task1/hello_move/Move.lock b/mover/2niuhe/2niuhe/code/task1/hello_move/Move.lock new file mode 100644 index 000000000..06a0fe619 --- /dev/null +++ b/mover/2niuhe/2niuhe/code/task1/hello_move/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 3 +manifest_digest = "60F2000F4D6DAD240EF371DB3BC521F7BD4C8B814BC59CA473B852B77FDBE53C" +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.37.1" +edition = "2024.beta" +flavor = "sui" + +[env] + +[env.testnet] +chain-id = "4c78adac" +original-published-id = "0xbc4bde885572f3c99395c6072fb75cd12abd37136c61ec0fd5da64e369eb748d" +latest-published-id = "0xbc4bde885572f3c99395c6072fb75cd12abd37136c61ec0fd5da64e369eb748d" +published-version = "1" diff --git a/mover/2niuhe/2niuhe/code/task1/hello_move/Move.toml b/mover/2niuhe/2niuhe/code/task1/hello_move/Move.toml new file mode 100644 index 000000000..201de1731 --- /dev/null +++ b/mover/2niuhe/2niuhe/code/task1/hello_move/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "hello_world" +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] +hello_world = "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/2niuhe/2niuhe/code/task1/hello_move/sources/hello_world.move b/mover/2niuhe/2niuhe/code/task1/hello_move/sources/hello_world.move new file mode 100644 index 000000000..83db4cccb --- /dev/null +++ b/mover/2niuhe/2niuhe/code/task1/hello_move/sources/hello_world.move @@ -0,0 +1,18 @@ +module hello_world::hello ; + +use std::ascii::{String, string}; +use sui::transfer::transfer; +use sui::tx_context::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"2niuhe"), + }; + transfer(hello_move, sender(ctx)); +} \ No newline at end of file diff --git a/mover/2niuhe/2niuhe/code/task1/hello_move/tests/hello_world_tests.move b/mover/2niuhe/2niuhe/code/task1/hello_move/tests/hello_world_tests.move new file mode 100644 index 000000000..7798d8dda --- /dev/null +++ b/mover/2niuhe/2niuhe/code/task1/hello_move/tests/hello_world_tests.move @@ -0,0 +1,18 @@ +/* +#[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 +} +*/ diff --git a/mover/2niuhe/2niuhe/images/l.png b/mover/2niuhe/2niuhe/images/l.png new file mode 100644 index 000000000..e7136bc59 Binary files /dev/null and b/mover/2niuhe/2niuhe/images/l.png differ diff --git a/mover/2niuhe/2niuhe/images/qb.png b/mover/2niuhe/2niuhe/images/qb.png new file mode 100644 index 000000000..8f2b11e97 Binary files /dev/null and b/mover/2niuhe/2niuhe/images/qb.png differ diff --git a/mover/2niuhe/2niuhe/notes/readme.md b/mover/2niuhe/2niuhe/notes/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/2niuhe/2niuhe/notes/task1.md b/mover/2niuhe/2niuhe/notes/task1.md new file mode 100644 index 000000000..90293a4b8 --- /dev/null +++ b/mover/2niuhe/2niuhe/notes/task1.md @@ -0,0 +1,197 @@ + +## 环境安装 + +github release下载二进制文件 + 配置环境变量 + + +## 测试网命令 + +```bash +nh@ruijiao1:~/move_play$ sui client +Config file ["/home/nh/.sui/sui_config/client.yaml"] doesn't exist, do you want to connect to a Sui Full node server [y/N]?y +Sui Full node server URL (Defaults to Sui Testnet if not specified) : https://fullnode.testnet.sui.io:443 +Environment alias for [https://fullnode.testnet.sui.io:443] : testnet +Select key scheme to generate keypair (0 for ed25519, 1 for secp256k1, 2: for secp256r1): +1 +Generated new keypair and alias for address with scheme "secp256k1" [bold-beryl: 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6] +Secret Recovery Phrase : [seat evidence hire toilet bless glare report camp absent milk finger network] +Client for interacting with the Sui network + +nh@ruijiao1:~/move_play$ sui client envs +╭─────────┬─────────────────────────────────────┬────────╮ +│ alias │ url │ active │ +├─────────┼─────────────────────────────────────┼────────┤ +│ testnet │ https://fullnode.testnet.sui.io:443 │ * │ +╰─────────┴─────────────────────────────────────┴────────╯ +nh@ruijiao1:~/move_play$ sui client gas +No gas coins are owned by this address +nh@ruijiao1:~/move_play$ sui client faucet +Request successful. It can take up to 1 minute to get the coin. Run sui client gas to check your gas coins. +nh@ruijiao1:~/move_play$ sui client gas +╭────────────────────────────────────────────────────────────────────┬────────────────────┬──────────────────╮ +│ gasCoinId │ mistBalance (MIST) │ suiBalance (SUI) │ +├────────────────────────────────────────────────────────────────────┼────────────────────┼──────────────────┤ +│ 0xadb885dd8f065fedb96d3097826a89cf45d21084abb8ee551d7e2866c2a74d2b │ 1000000000 │ 1.00 │ +╰────────────────────────────────────────────────────────────────────┴────────────────────┴──────────────────╯ + +``` + +## 开发并发布合约 + +```bash +sui move new hello_world +``` + + + +```bash +nh@ruijiao1:~/move_play/hello_world$ sui client publish --gas-budget 50000000 +UPDATING GIT DEPENDENCY https://github.com/MystenLabs/sui.git +INCLUDING DEPENDENCY Sui +INCLUDING DEPENDENCY MoveStdlib +BUILDING hello_world +Successfully verified dependencies on-chain against source. +Transaction Digest: Aee1yMeSeXwAEp52MS1aUfdNm1b3C9QmrhTBAYKDZS9t +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Data │ +├──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Sender: 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 │ +│ Gas Owner: 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 │ +│ Gas Budget: 50000000 MIST │ +│ Gas Price: 1000 MIST │ +│ Gas Payment: │ +│ ┌── │ +│ │ ID: 0xadb885dd8f065fedb96d3097826a89cf45d21084abb8ee551d7e2866c2a74d2b │ +│ │ Version: 206234643 │ +│ │ Digest: 2rq6PmRXSk6yRi3ggTtpyacK7JoiCTbqS17XduSNmyhf │ +│ └── │ +│ │ +│ Transaction Kind: Programmable │ +│ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ +│ │ Input Objects │ │ +│ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Pure Arg: Type: address, Value: "0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6" │ │ +│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ +│ ╭─────────────────────────────────────────────────────────────────────────╮ │ +│ │ Commands │ │ +│ ├─────────────────────────────────────────────────────────────────────────┤ │ +│ │ 0 Publish: │ │ +│ │ ┌ │ │ +│ │ │ Dependencies: │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000001 │ │ +│ │ │ 0x0000000000000000000000000000000000000000000000000000000000000002 │ │ +│ │ └ │ │ +│ │ │ │ +│ │ 1 TransferObjects: │ │ +│ │ ┌ │ │ +│ │ │ Arguments: │ │ +│ │ │ Result 0 │ │ +│ │ │ Address: Input 0 │ │ +│ │ └ │ │ +│ ╰─────────────────────────────────────────────────────────────────────────╯ │ +│ │ +│ Signatures: │ +│ Bixn0QvkiGuJKPGs4dpmDL+lO1691p3y7m97wEK4QBZmR8YBz7O5l569w/Z8/Pb65X5JMytZOrSPNDj/kqXZ/A== │ +│ │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Transaction Effects │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Digest: Aee1yMeSeXwAEp52MS1aUfdNm1b3C9QmrhTBAYKDZS9t │ +│ Status: Success │ +│ Executed Epoch: 550 │ +│ │ +│ Created Objects: │ +│ ┌── │ +│ │ ID: 0x30f99dfc3df533d60e2c5d85da127b8f2106e435bc355d0d7f8f5f65e4d6cebf │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ Version: 206234644 │ +│ │ Digest: 6nk9AANfiEkQ5TW6JEW4XheJAgdBFaZLh4WjraUHY5XK │ +│ └── │ +│ ┌── │ +│ │ ID: 0xac2ab7327ce368f547087e4b7c47461530e71cb947ace86b8d99988eed558e0f │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ Version: 206234644 │ +│ │ Digest: 54ke1DKibDSAvuw6nFxRqQvsUZKAPyphbtCPLzw7MWne │ +│ └── │ +│ ┌── │ +│ │ ID: 0xbc4bde885572f3c99395c6072fb75cd12abd37136c61ec0fd5da64e369eb748d │ +│ │ Owner: Immutable │ +│ │ Version: 1 │ +│ │ Digest: cLCaBYAvexV8i42t2PANSL7V3CGU5qnw7LaBouVgvmC │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ID: 0xadb885dd8f065fedb96d3097826a89cf45d21084abb8ee551d7e2866c2a74d2b │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ Version: 206234644 │ +│ │ Digest: J3vLyxrNgywQK7SwREZ3PT1kDLJkq4cbbY2xnDPrL8vy │ +│ └── │ +│ Gas Object: │ +│ ┌── │ +│ │ ID: 0xadb885dd8f065fedb96d3097826a89cf45d21084abb8ee551d7e2866c2a74d2b │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ Version: 206234644 │ +│ │ Digest: J3vLyxrNgywQK7SwREZ3PT1kDLJkq4cbbY2xnDPrL8vy │ +│ └── │ +│ Gas Cost Summary: │ +│ Storage Cost: 8800800 MIST │ +│ Computation Cost: 1000000 MIST │ +│ Storage Rebate: 978120 MIST │ +│ Non-refundable Storage Fee: 9880 MIST │ +│ │ +│ Transaction Dependencies: │ +│ GMBJA2gEEvtwv1wGGT7ZEDkQdrmUTKaE4TeinNGQ2feC │ +│ HgXkFBZu5GWmri4hy71aPozzMPtyMp6RXe3u7VRdx5Wm │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─────────────────────────────╮ +│ No transaction block events │ +╰─────────────────────────────╯ + +╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Object Changes │ +├──────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ Created Objects: │ +│ ┌── │ +│ │ ObjectID: 0x30f99dfc3df533d60e2c5d85da127b8f2106e435bc355d0d7f8f5f65e4d6cebf │ +│ │ Sender: 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ ObjectType: 0x2::package::UpgradeCap │ +│ │ Version: 206234644 │ +│ │ Digest: 6nk9AANfiEkQ5TW6JEW4XheJAgdBFaZLh4WjraUHY5XK │ +│ └── │ +│ ┌── │ +│ │ ObjectID: 0xac2ab7327ce368f547087e4b7c47461530e71cb947ace86b8d99988eed558e0f │ +│ │ Sender: 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ ObjectType: 0xbc4bde885572f3c99395c6072fb75cd12abd37136c61ec0fd5da64e369eb748d::hello::Hello │ +│ │ Version: 206234644 │ +│ │ Digest: 54ke1DKibDSAvuw6nFxRqQvsUZKAPyphbtCPLzw7MWne │ +│ └── │ +│ Mutated Objects: │ +│ ┌── │ +│ │ ObjectID: 0xadb885dd8f065fedb96d3097826a89cf45d21084abb8ee551d7e2866c2a74d2b │ +│ │ Sender: 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ ObjectType: 0x2::coin::Coin<0x2::sui::SUI> │ +│ │ Version: 206234644 │ +│ │ Digest: J3vLyxrNgywQK7SwREZ3PT1kDLJkq4cbbY2xnDPrL8vy │ +│ └── │ +│ Published Objects: │ +│ ┌── │ +│ │ PackageID: 0xbc4bde885572f3c99395c6072fb75cd12abd37136c61ec0fd5da64e369eb748d │ +│ │ Version: 1 │ +│ │ Digest: cLCaBYAvexV8i42t2PANSL7V3CGU5qnw7LaBouVgvmC │ +│ │ Modules: hello │ +│ └── │ +╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ +│ Balance Changes │ +├───────────────────────────────────────────────────────────────────────────────────────────────────┤ +│ ┌── │ +│ │ Owner: Account Address ( 0xf2b3b734ba050d6386735339a859e61dcf50030a119c7cf8e68d26230b97dda6 ) │ +│ │ CoinType: 0x2::sui::SUI │ +│ │ Amount: -8822680 │ +│ └── │ +╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ +``` diff --git a/mover/2niuhe/2niuhe/readme.md b/mover/2niuhe/2niuhe/readme.md new file mode 100644 index 000000000..6d0667073 --- /dev/null +++ b/mover/2niuhe/2niuhe/readme.md @@ -0,0 +1,54 @@ +## 基本信息 +- Sui钱包地址: `0xeb63df9282bf47a2c721806d74f15c58aa5059c5732eab44ad92fbf69785cd0d` +> 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 +- github: `2niuhe` + +## 个人简介 +- 工作经验: 5年 +- 技术栈: `golang` `python` +> 重要提示 请认真写自己的简介 +- 多年云计算后端开发经验,想学一门web3开发语言 +- 联系方式: tg: `https://t.me/nobodyfoo` + +## 任务 + +## 01 hello move +- [✓] Sui cli version: 1.37.1-7839b9501066 +- [✓] Sui钱包截图: ![Sui钱包截图](./images/qb.png) +- [✓] package id: 0xbc4bde885572f3c99395c6072fb75cd12abd37136c61ec0fd5da64e369eb748d +- [✓] package id 在 scan上的查看截图:![Scan截图](./images/l.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 : diff --git a/mover/2niuhe/2niuhe/scan/readme.md b/mover/2niuhe/2niuhe/scan/readme.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/mover/2niuhe/2niuhe/scan/readme.md @@ -0,0 +1 @@ +