diff --git a/mover/zacarx/assets/image-20241114170946321.png b/mover/zacarx/assets/image-20241114170946321.png new file mode 100644 index 000000000..c81388e77 Binary files /dev/null and b/mover/zacarx/assets/image-20241114170946321.png differ diff --git a/mover/zacarx/co-learn-2411/assets/image-20241114230736922.png b/mover/zacarx/co-learn-2411/assets/image-20241114230736922.png new file mode 100644 index 000000000..d69d431fd Binary files /dev/null and b/mover/zacarx/co-learn-2411/assets/image-20241114230736922.png differ diff --git a/mover/zacarx/co-learn-2411/assets/image-20241114230857279.png b/mover/zacarx/co-learn-2411/assets/image-20241114230857279.png new file mode 100644 index 000000000..d561b9177 Binary files /dev/null and b/mover/zacarx/co-learn-2411/assets/image-20241114230857279.png differ diff --git a/mover/zacarx/co-learn-2411/assets/image-20241114231107464.png b/mover/zacarx/co-learn-2411/assets/image-20241114231107464.png new file mode 100644 index 000000000..f394662d4 Binary files /dev/null and b/mover/zacarx/co-learn-2411/assets/image-20241114231107464.png differ diff --git a/mover/zacarx/co-learn-2411/images/readme.md b/mover/zacarx/co-learn-2411/images/readme.md new file mode 100644 index 000000000..e69de29bb diff --git a/mover/zacarx/co-learn-2411/project/readme.md b/mover/zacarx/co-learn-2411/project/readme.md new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/mover/zacarx/co-learn-2411/project/readme.md @@ -0,0 +1 @@ + diff --git a/mover/zacarx/co-learn-2411/readme.md b/mover/zacarx/co-learn-2411/readme.md new file mode 100644 index 000000000..a63eff3b1 --- /dev/null +++ b/mover/zacarx/co-learn-2411/readme.md @@ -0,0 +1,60 @@ +# 这个模板是2024年11月份的共学营才需要的 + +## b站,推特关注 + +- [x] b站,推特关注截图: + +![image-20241114230736922](./assets/image-20241114230736922.png) + +![image-20241114230857279](./assets/image-20241114230857279.png) + + + +## 为共学营宣传(在朋友圈或者群聊中转发海报/文章) + +- [x] 宣传截图: +- [x] ![image-20241114231107464](./assets/image-20241114231107464.png) + +## 每周课程学习 + +- [] 第一周:![学习记录截图](./images/你的图片地址) +- [] 第二周:![学习记录截图](./images/你的图片地址) +- [] 第三周:![学习记录截图](./images/你的图片地址) +- [] 第四周:![学习记录截图](./images/你的图片地址) + +## 参加直播答疑 + +- [] 第一周:![学习记录截图](./images/你的图片地址) +- [] 第二周:![学习记录截图](./images/你的图片地址) +- [] 第三周:![学习记录截图](./images/你的图片地址) +- [] 第四周:![学习记录截图](./images/你的图片地址) + +## 群里分享学习笔记 + +- [] 第一篇笔记 +- [] 第二篇笔记 +- [] 第三篇笔记 +- [] 第四篇笔记 + +## 对外输出学习笔记 + +- [] 第一篇笔记【学习笔记链接】 +- [] 第二篇笔记【学习笔记链接】 +- [] 第三篇笔记【学习笔记链接】 +- [] 第四篇笔记【学习笔记链接】 + +## 在HOH社区公众号发布自己的技术文章 + +- [] 第一篇笔记【公众号文章链接】 +- [] 第二篇笔记【公众号文章链接】 +- [] 第三篇笔记【公众号文章链接】 +- [] 第四篇笔记【公众号文章链接】 + +## 直播分享学习技巧/工具推荐 + +- [] 会议截图:![会议记录截图](./images/你的图片地址) + +## 提交项目 + +- [] 项目提交![项目截图](./images/你的图片地址) + diff --git a/mover/zacarx/code/task2_coin/faucet_coin/Move.lock b/mover/zacarx/code/task2_coin/faucet_coin/Move.lock new file mode 100644 index 000000000..9c8728bb1 --- /dev/null +++ b/mover/zacarx/code/task2_coin/faucet_coin/Move.lock @@ -0,0 +1,34 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 3 +manifest_digest = "8D3EEF09FF2AD6B4D80AC40E366B5FB930DD591FB36370A977E0847B34F30996" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { id = "Sui", name = "Sui" }, +] + +[[move.package]] +id = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +id = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/devnet", 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.main-env] +chain-id = "35834a8a" +original-published-id = "0xed033d020f7796449b1c845cdde8bca79e2d0a77329f03d014b2daa7896709ae" +latest-published-id = "0xed033d020f7796449b1c845cdde8bca79e2d0a77329f03d014b2daa7896709ae" +published-version = "1" diff --git a/mover/zacarx/code/task2_coin/faucet_coin/Move.toml b/mover/zacarx/code/task2_coin/faucet_coin/Move.toml new file mode 100644 index 000000000..d54a49200 --- /dev/null +++ b/mover/zacarx/code/task2_coin/faucet_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "faucet_coin" +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/devnet" } + +# 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] +faucet_coin = "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/zacarx/code/task2_coin/faucet_coin/sources/faucet_coin.move b/mover/zacarx/code/task2_coin/faucet_coin/sources/faucet_coin.move new file mode 100644 index 000000000..30fa0b948 --- /dev/null +++ b/mover/zacarx/code/task2_coin/faucet_coin/sources/faucet_coin.move @@ -0,0 +1,18 @@ +module faucet_coin::zacarxfaucet; + +use sui::coin::{create_currency, mint_and_transfer}; +use sui::url; +use std::option; + +public struct ZACARXFAUCET has drop {} + +fun init(zacarxfaucet: ZACARXFAUCET, ctx: &mut TxContext) { + let url = url::new_unsafe_from_bytes(b"https://aggregator.walrus-testnet.walrus.space/v1/3om0zV4j9AHvC5KSrcg3iyMU8zOavKhg3uT8q1rwap0"); + let yes = option::some(url); // 使用 option::some 函数 + let (treasury, coinmetadata) = create_currency(zacarxfaucet, 8, b"ZACARXFAUCET", b"zacarxfaucet", b"we love zacarxfaucet'coin", yes, ctx); + + sui::transfer::public_freeze_object(coinmetadata); + sui::transfer::public_share_object(treasury); + + // mint_and_transfer() +} diff --git a/mover/zacarx/code/task2_coin/faucet_coin/tests/faucet_coin_tests.move b/mover/zacarx/code/task2_coin/faucet_coin/tests/faucet_coin_tests.move new file mode 100644 index 000000000..74b01751a --- /dev/null +++ b/mover/zacarx/code/task2_coin/faucet_coin/tests/faucet_coin_tests.move @@ -0,0 +1,18 @@ +/* +#[test_only] +module faucet_coin::faucet_coin_tests; +// uncomment this line to import the module +// use faucet_coin::faucet_coin; + +const ENotImplemented: u64 = 0; + +#[test] +fun test_faucet_coin() { + // pass +} + +#[test, expected_failure(abort_code = ::faucet_coin::faucet_coin_tests::ENotImplemented)] +fun test_faucet_coin_fail() { + abort ENotImplemented +} +*/ diff --git a/mover/zacarx/code/task2_coin/my_coin/Move.lock b/mover/zacarx/code/task2_coin/my_coin/Move.lock new file mode 100644 index 000000000..c2c8ca29d --- /dev/null +++ b/mover/zacarx/code/task2_coin/my_coin/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 3 +manifest_digest = "6784F87564F47856350582ED7D17417E9E132E3258C1448EF81E23BFD57D0FF2" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { id = "Sui", name = "Sui" }, +] + +[[move.package]] +id = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/devnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +id = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/devnet", 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.devnet] +chain-id = "0fc07bbe" +original-published-id = "0x5ab5bd498a6affa955df12b98a8b67578825e1c6a24ba79240e61178c988dac1" +latest-published-id = "0x5ab5bd498a6affa955df12b98a8b67578825e1c6a24ba79240e61178c988dac1" +published-version = "1" + +[env.main-env] +chain-id = "35834a8a" +original-published-id = "0xfb935e0ef8cb76d207ad2cdfe15bca9130e90d783f5d5dd51a865551655c48ba" +latest-published-id = "0xfb935e0ef8cb76d207ad2cdfe15bca9130e90d783f5d5dd51a865551655c48ba" +published-version = "1" diff --git a/mover/zacarx/code/task2_coin/my_coin/Move.toml b/mover/zacarx/code/task2_coin/my_coin/Move.toml new file mode 100644 index 000000000..a674d54e9 --- /dev/null +++ b/mover/zacarx/code/task2_coin/my_coin/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "my_coin" +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/devnet" } + +# 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] +my_coin = "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/zacarx/code/task2_coin/my_coin/sources/usd.move b/mover/zacarx/code/task2_coin/my_coin/sources/usd.move new file mode 100644 index 000000000..d8a1bbe1f --- /dev/null +++ b/mover/zacarx/code/task2_coin/my_coin/sources/usd.move @@ -0,0 +1,18 @@ +module my_coin::zacarxcoin; + +use sui::coin::{create_currency, mint_and_transfer}; +use sui::url; +use std::option; + +public struct ZACARXCOIN has drop {} + +fun init(zacarxcoin: ZACARXCOIN, ctx: &mut TxContext) { + let url = url::new_unsafe_from_bytes(b"https://aggregator.walrus-testnet.walrus.space/v1/3om0zV4j9AHvC5KSrcg3iyMU8zOavKhg3uT8q1rwap0"); + let yes = option::some(url); // 使用 option::some 函数 + let (treasury, coinmetadata) = create_currency(zacarxcoin, 8, b"ZACARXCOIN", b"zacarxcoin", b"we love zacarx'coin", yes, ctx); + + sui::transfer::public_freeze_object(coinmetadata); + sui::transfer::public_transfer(treasury, ctx.sender()) + + // mint_and_transfer() +} diff --git a/mover/zacarx/code/task2_coin/my_coin/tests/my_coin_tests.move b/mover/zacarx/code/task2_coin/my_coin/tests/my_coin_tests.move new file mode 100644 index 000000000..cd5b36060 --- /dev/null +++ b/mover/zacarx/code/task2_coin/my_coin/tests/my_coin_tests.move @@ -0,0 +1,18 @@ +/* +#[test_only] +module my_coin::my_coin_tests; +// uncomment this line to import the module +// use my_coin::my_coin; + +const ENotImplemented: u64 = 0; + +#[test] +fun test_my_coin() { + // pass +} + +#[test, expected_failure(abort_code = ::my_coin::my_coin_tests::ENotImplemented)] +fun test_my_coin_fail() { + abort ENotImplemented +} +*/ diff --git a/mover/zacarx/code/task3_my_nft/Move.lock b/mover/zacarx/code/task3_my_nft/Move.lock new file mode 100644 index 000000000..f8d957b19 --- /dev/null +++ b/mover/zacarx/code/task3_my_nft/Move.lock @@ -0,0 +1,40 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 3 +manifest_digest = "52D56DDA7B81D6C8D4E8149AE4D0DA217890CA30BB40D805DE9A9A3C84AAB9FF" +deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082" +dependencies = [ + { id = "Sui", name = "Sui" }, +] + +[[move.package]] +id = "MoveStdlib" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +id = "Sui" +source = { git = "https://gitee.com/MystenLabs/sui.git", rev = "framework/mainnet", 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.devnet] +chain-id = "0fc07bbe" +original-published-id = "0x16496de6ed690667e7d3116c98b3396f12b8785e3b687f4d3c1e85c9d9936b6f" +latest-published-id = "0x16496de6ed690667e7d3116c98b3396f12b8785e3b687f4d3c1e85c9d9936b6f" +published-version = "1" + +[env.main-env] +chain-id = "35834a8a" +original-published-id = "0x9c9e730a675be48bebf1fce89d305dec7e1a46c1adb8a07b8af61153ce696778" +latest-published-id = "0x9c9e730a675be48bebf1fce89d305dec7e1a46c1adb8a07b8af61153ce696778" +published-version = "1" diff --git a/mover/zacarx/code/task3_my_nft/Move.toml b/mover/zacarx/code/task3_my_nft/Move.toml new file mode 100644 index 000000000..245fdf912 --- /dev/null +++ b/mover/zacarx/code/task3_my_nft/Move.toml @@ -0,0 +1,37 @@ +[package] +name = "my_nft" +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/mainnet" } + +# 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] +my_nft = "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/zacarx/code/task3_my_nft/sources/my_nft.move b/mover/zacarx/code/task3_my_nft/sources/my_nft.move new file mode 100644 index 000000000..d8002245d --- /dev/null +++ b/mover/zacarx/code/task3_my_nft/sources/my_nft.move @@ -0,0 +1,64 @@ +module my_nft::my_nft; + +use std::string; +use std::string::String; +use sui::package; +use sui::display; +use sui::tx_context::sender; + +public struct NFT has key,store { + id: UID, + name: String, + image_url: String, +} +public struct MY_NFT has drop {} + +fun init(otw:MY_NFT,ctx: &mut TxContext){ + let keys = vector[ + b"id".to_string(), + b"name".to_string(), + b"image_url".to_string(), + ]; + + let values = vector[ + b"{id}".to_string(), + b"{name}".to_string(), + b"{image_url}".to_string(), + ]; + + // Claim the `Publisher` for the package! + let publisher = package::claim(otw, ctx); + + // Get a new `Display` object for the `NFT` type. + let mut display = display::new_with_fields( + &publisher, keys, values, ctx + ); + + // Commit first version of `Display` to apply changes. + display.update_version(); + + transfer::public_transfer(publisher, ctx.sender()); + transfer::public_transfer(display, ctx.sender()); + + let mynft = NFT{ + id:object::new(ctx), + name:string::utf8(b"zacarx nft"), + image_url:string::utf8(b"https://aggregator.walrus-testnet.walrus.space/v1/3om0zV4j9AHvC5KSrcg3iyMU8zOavKhg3uT8q1rwap0"), + }; + + transfer::public_transfer(mynft,ctx.sender()); +} + + +public entry fun mint(name: String, image_url: String, ctx: &mut TxContext) { + let mint_nft = NFT { + id: object::new(ctx), + name, + image_url + }; + transfer::public_transfer(mint_nft,ctx.sender()); +} + +public entry fun transfer_nft(nft: NFT, to: address) { + transfer::public_transfer(nft, to); +} diff --git a/mover/zacarx/code/task3_my_nft/tests/my_nft_tests.move b/mover/zacarx/code/task3_my_nft/tests/my_nft_tests.move new file mode 100644 index 000000000..4f30419a2 --- /dev/null +++ b/mover/zacarx/code/task3_my_nft/tests/my_nft_tests.move @@ -0,0 +1,18 @@ +/* +#[test_only] +module my_nft::my_nft_tests; +// uncomment this line to import the module +// use my_nft::my_nft; + +const ENotImplemented: u64 = 0; + +#[test] +fun test_my_nft() { + // pass +} + +#[test, expected_failure(abort_code = ::my_nft::my_nft_tests::ENotImplemented)] +fun test_my_nft_fail() { + abort ENotImplemented +} +*/ diff --git a/mover/zacarx/readme.md b/mover/zacarx/readme.md index 5ca8ebf5e..7bf795707 100644 --- a/mover/zacarx/readme.md +++ b/mover/zacarx/readme.md @@ -1,10 +1,10 @@ ## 基本信息 -- Sui钱包地址: `0xaaaf8ef32c022f5f1a7a0af13cea9e063ad502f6f3d0e4a854cc919718431ed5` +- Sui钱包地址: `0xdd3ef4a5f244874b6649519092e92482c262e7abcd6e1d84f435004ced85022d` > 首次参与需要完成第一个任务注册好钱包地址才被合并,并且后续学习奖励会打入这个地址 - github: `Zacarx` ## 个人简介 -- 工作经验: 0年 +- 工作经验: 1年 - 技术栈: `golang` `Python` > 重要提示 请认真写自己的简介 - CTFer,web手,对Move特别感兴趣,想通过Move入门区块链学习提升自己,开阔眼界 @@ -27,17 +27,22 @@ ![image-20240512172410027](./img/image-20240512172410027.png) ## 02 move coin -- [] My Coin package id : -- [] Faucet package id : -- [] 转账 `My Coin` hash: -- [] `Faucet Coin` address1 mint hash: -- [] `Faucet Coin` address2 mint hash: +- [x] My Coin package id : 0xfb935e0ef8cb76d207ad2cdfe15bca9130e90d783f5d5dd51a865551655c48ba +- [x] Faucet package id : 0xed033d020f7796449b1c845cdde8bca79e2d0a77329f03d014b2daa7896709ae +- [x] 转账 `My Coin` hash: 9bSsBeyv1gfm3BMULPjDKy6dFkALaWKwis6MmEVoqocT +- [x] `Faucet Coin` address1 mint hash: 9vWSqxLEW8mRriqVcY1F6FUX2KperUjputgx3MLuXW7b +- [x] `Faucet Coin` address2 mint hash:8JyJBcnimsZBFJpnYFFiV6gfvnrqLBQH7AbAeMWnSJNy ## 03 move NFT -- [] nft package id : -- [] nft object id : -- [] 转账 nft hash: -- [] scan上的NFT截图:![Scan截图](./images/你的图片地址) +- [x] nft package id :0x9c9e730a675be48bebf1fce89d305dec7e1a46c1adb8a07b8af61153ce696778 + +- [x] nft object id : 0x9c9e730a675be48bebf1fce89d305dec7e1a46c1adb8a07b8af61153ce696778 + +- [x] 转账 nft hash:CknAVhVVDDDPVKoz8Va5haxqv4PmVpL7pkLVLLccfmTN + +- [x] scan上的NFT截图: + + ![image-20241114170946321](./assets/image-20241114170946321.png) ## 04 Move Game - [] game package id :