Skip to content

Commit

Permalink
update: 完成 task 3
Browse files Browse the repository at this point in the history
  • Loading branch information
djytwy committed Oct 24, 2024
1 parent d348732 commit 4d3c03d
Show file tree
Hide file tree
Showing 6 changed files with 166 additions and 4 deletions.
40 changes: 40 additions & 0 deletions mover/rainerTian/code/task3/Move.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# @generated by Move, please check-in and do not edit manually.

[move]
version = 3
manifest_digest = "DEDE53BD567ECEDC2009BE853A86F47F6BDC3F1F03A6B00FAED274F07E74A18B"
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.35.0"
edition = "2024.beta"
flavor = "sui"

[env]

[env.testnet]
chain-id = "4c78adac"
original-published-id = "0xa61fbf4dea0492c753f491f08291bd0cd776273f0054ee3884954c460fc17afd"
latest-published-id = "0xa61fbf4dea0492c753f491f08291bd0cd776273f0054ee3884954c460fc17afd"
published-version = "1"

[env.mainnet]
chain-id = "35834a8a"
original-published-id = "0x21046268429aabd5b6c80e3949508f76d000af24d442ae0d1c4f775713d84e3e"
latest-published-id = "0x21046268429aabd5b6c80e3949508f76d000af24d442ae0d1c4f775713d84e3e"
published-version = "1"
37 changes: 37 additions & 0 deletions mover/rainerTian/code/task3/Move.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[package]
name = "task3"
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]
task3 = "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"

67 changes: 67 additions & 0 deletions mover/rainerTian/code/task3/sources/task3.move
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
/// Module: task3
*/

module task3::myNFT {
use std::string::String;
use sui::event;

public struct MyNFT has key, store {
id: UID,
name: String,
traits: vector<String>,
url: String,
}

public struct MyNFTMinted has copy, drop {
id: ID,
minted_by: address,
}

public fun name (nft: &MyNFT) : String {
nft.name
}

public fun traits (nft: &MyNFT): vector<String> {
nft.traits
}

public fun url (nft: &MyNFT): String {
nft.url
}

public fun set_url (nft: &mut MyNFT, url: String) {
nft.url = url;
}

public fun destroy(nft: MyNFT) {
let MyNFT { id, url: _, name: _, traits: _ } = nft;
id.delete()
}

public fun add_trait(nft: &mut MyNFT, trait: String) {
nft.traits.push_back(trait);
}

public entry fun mint (
name: String,
url: String,
traits: vector<String>,
ctx:&mut TxContext
) {
let id = object::new(ctx);
// event: when event emit can record what happend in smart contract
event::emit(MyNFTMinted {
id: id.to_inner(),
minted_by: ctx.sender()
});
let nft = MyNFT {id, name, traits, url};
let sender = tx_context::sender(ctx);
transfer::public_transfer(nft, sender);
}

// add transfer for task3
public entry fun transfer (nft: MyNFT, receive: address) {
transfer::public_transfer(nft, receive);
}
}
18 changes: 18 additions & 0 deletions mover/rainerTian/code/task3/tests/task2_tests.move
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/*
#[test_only]
module task2::task2_tests;
// uncomment this line to import the module
// use task2::task2;
const ENotImplemented: u64 = 0;
#[test]
fun test_task2() {
// pass
}
#[test, expected_failure(abort_code = ::task2::task2_tests::ENotImplemented)]
fun test_task2_fail() {
abort ENotImplemented
}
*/
Binary file added mover/rainerTian/images/task3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions mover/rainerTian/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@
- [] `Faucet Coin` address2 mint hash: D2dAE8cYsf3JL3JrbB652TkWupdWsiMghzZBvaKeaAPy

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

## 04 Move Game
- [] game package id :
Expand Down

0 comments on commit 4d3c03d

Please sign in to comment.