-
Notifications
You must be signed in to change notification settings - Fork 886
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Subc
committed
Dec 10, 2024
1 parent
3e7bd97
commit 38178d9
Showing
7 changed files
with
208 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# @generated by Move, please check-in and do not edit manually. | ||
|
||
[move] | ||
version = 3 | ||
manifest_digest = "B6B1B214F7D9C1D99F0033646BB86CC59A9DDF3F8564699CEA8D0F6A0B4DC9EB" | ||
deps_digest = "060AD7E57DFB13104F21BE5F5C3759D03F0553FC3229247D9A7A6B45F50D03A3" | ||
dependencies = [ | ||
{ id = "Sui", name = "Sui" }, | ||
{ id = "suiceber_coin", name = "suiceber_coin" }, | ||
{ id = "suiceber_faucet_coin", name = "suiceber_faucet_coin" }, | ||
] | ||
|
||
[[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.package]] | ||
id = "suiceber_coin" | ||
source = { local = "C:\\Users\\62605\\Desktop\\sui\\letsmove\\mover\\suiceber\\code\\task2\\suiceber_coin" } | ||
|
||
dependencies = [ | ||
{ id = "Sui", name = "Sui" }, | ||
] | ||
|
||
[[move.package]] | ||
id = "suiceber_faucet_coin" | ||
source = { local = "C:\\Users\\62605\\Desktop\\sui\\letsmove\\mover\\suiceber\\code\\task2\\suiceber_faucet_coin" } | ||
|
||
dependencies = [ | ||
{ id = "Sui", name = "Sui" }, | ||
] | ||
|
||
[move.toolchain-version] | ||
compiler-version = "1.37.1" | ||
edition = "2024.beta" | ||
flavor = "sui" | ||
|
||
[env] | ||
|
||
[env.mainnet] | ||
chain-id = "35834a8a" | ||
original-published-id = "0xde56fb47cbbfa4dbe2dcd014c7d81c1b510c442b10f573b4f79e028129e33733" | ||
latest-published-id = "0xde56fb47cbbfa4dbe2dcd014c7d81c1b510c442b10f573b4f79e028129e33733" | ||
published-version = "1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
[package] | ||
name = "task5" | ||
edition = "2024.beta" # edition = "legacy" to use legacy (pre-2024) Move | ||
# license = "" # e.g., "MIT", "GPL", "Apache 2.0" | ||
# authors = ["..."] # e.g., ["Joe Smith ([email protected])", "John Snow ([email protected])"] | ||
|
||
[dependencies] | ||
Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" } | ||
suiceber_faucet_coin = { local = "C:/Users/62605/Desktop/sui/letsmove/mover/suiceber/code/task2/suiceber_faucet_coin" } | ||
suiceber_coin = { local = "C:/Users/62605/Desktop/sui/letsmove/mover/suiceber/code/task2/suiceber_coin" } | ||
# 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] | ||
task5 = "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" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
|
||
module task5::task5 { | ||
use sui::coin::{Self, Coin}; | ||
use suiceber_coin::suiceber_coin::SUICEBER_COIN; | ||
use suiceber_faucet_coin::suiceber_faucet_coin::SUICEBER_FAUCET_COIN; | ||
use sui::balance::{Self, Balance}; | ||
|
||
const EInsufficientBalance: u64 = 1000; | ||
|
||
public struct Pool has key { | ||
id: UID, | ||
coin_balance: Balance<SUICEBER_COIN>, | ||
faucet_balance: Balance<SUICEBER_FAUCET_COIN>, | ||
} | ||
|
||
fun init(ctx: &mut TxContext) { | ||
let pool = Pool { | ||
id: object::new(ctx), | ||
coin_balance: balance::zero(), | ||
faucet_balance: balance::zero() | ||
}; | ||
transfer::share_object(pool); | ||
} | ||
|
||
// 填充资金池 | ||
public entry fun Deposit( | ||
pool: &mut Pool, | ||
coin: &mut Coin<SUICEBER_COIN>, | ||
faucet: &mut Coin<SUICEBER_FAUCET_COIN>, | ||
coin_amount: u64, | ||
faucet_amount: u64 | ||
|
||
) { | ||
let split_coin_balance = balance::split( | ||
coin::balance_mut(coin), | ||
coin_amount | ||
); | ||
balance::join( | ||
&mut pool.coin_balance, | ||
split_coin_balance | ||
); | ||
let split_faucet_balance = balance::split( | ||
coin::balance_mut(faucet), | ||
faucet_amount | ||
); | ||
balance::join( | ||
&mut pool.faucet_balance, | ||
split_faucet_balance | ||
); | ||
} | ||
|
||
public entry fun swap_coin_to_faucet( | ||
pool: &mut Pool, | ||
coin: &mut Coin<SUICEBER_COIN>, | ||
amount: u64, | ||
ctx: &mut TxContext | ||
) { | ||
assert!( | ||
pool.faucet_balance.value() >= amount, | ||
EInsufficientBalance | ||
); | ||
let split_coin_balance = balance::split(coin::balance_mut(coin), amount); | ||
balance::join( | ||
&mut pool.coin_balance, | ||
split_coin_balance | ||
); | ||
let faucet = coin::take( | ||
&mut pool.faucet_balance, | ||
amount, | ||
ctx | ||
); | ||
transfer::public_transfer(faucet, ctx.sender()); | ||
} | ||
|
||
public entry fun swap_faucet_to_coin( | ||
pool: &mut Pool, | ||
faucet: &mut Coin<SUICEBER_FAUCET_COIN>, | ||
amount: u64, | ||
ctx: &mut TxContext | ||
) { | ||
assert!( | ||
pool.coin_balance.value() >= amount, | ||
EInsufficientBalance | ||
); | ||
let split_faucet_balance = balance::split(coin::balance_mut(faucet), amount); | ||
balance::join( | ||
&mut pool.faucet_balance, | ||
split_faucet_balance | ||
); | ||
let coin = coin::take(&mut pool.coin_balance, amount, ctx); | ||
transfer::public_transfer(coin, ctx.sender()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/* | ||
#[test_only] | ||
module task5::task5_tests; | ||
// uncomment this line to import the module | ||
// use task5::task5; | ||
const ENotImplemented: u64 = 0; | ||
#[test] | ||
fun test_task5() { | ||
// pass | ||
} | ||
#[test, expected_failure(abort_code = ::task5::task5_tests::ENotImplemented)] | ||
fun test_task5_fail() { | ||
abort ENotImplemented | ||
} | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters