-
Notifications
You must be signed in to change notification settings - Fork 878
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
35 changed files
with
10,707 additions
and
25 deletions.
There are no files selected for viewing
34 changes: 34 additions & 0 deletions
34
mover/StarryDeserts/code/task5/starrydesert_swap/Move.lock
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,34 @@ | ||
# @generated by Move, please check-in and do not edit manually. | ||
|
||
[move] | ||
version = 3 | ||
manifest_digest = "3372AAA79A795030CB3B12FDA5EC278FC69C9F8981E0E8833940E9C90ED91EF2" | ||
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.3" | ||
edition = "2024.beta" | ||
flavor = "sui" | ||
|
||
[env] | ||
|
||
[env.mainnet] | ||
chain-id = "35834a8a" | ||
original-published-id = "0x1c1c72e45be1507bfdf20d8c5eead4e14da8062d6ccbc319d9d54b520af076e9" | ||
latest-published-id = "0x1c1c72e45be1507bfdf20d8c5eead4e14da8062d6ccbc319d9d54b520af076e9" | ||
published-version = "1" |
37 changes: 37 additions & 0 deletions
37
mover/StarryDeserts/code/task5/starrydesert_swap/Move.toml
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,37 @@ | ||
[package] | ||
name = "starrydesert_swap" | ||
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" } | ||
|
||
# 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] | ||
starrydesert_swap = "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" | ||
|
46 changes: 46 additions & 0 deletions
46
mover/StarryDeserts/code/task5/starrydesert_swap/sources/starrydesert_coin.move
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,46 @@ | ||
module starrydesert_swap::sd_coin { | ||
use sui::coin::{Self, Coin, TreasuryCap}; | ||
use sui::url::{Self, Url}; | ||
|
||
public struct SD_COIN has drop {} | ||
|
||
fun init( | ||
witness: SD_COIN, | ||
ctx: &mut TxContext | ||
) { | ||
let (treasury_cap, metadata) = coin::create_currency<SD_COIN>( | ||
witness, | ||
9, | ||
b"SD", | ||
b"SD_COIN", | ||
b"StarryDesert Coin", | ||
option::some<Url>( | ||
url::new_unsafe_from_bytes( | ||
b"https://avatars.githubusercontent.com/u/86464159" | ||
) | ||
), | ||
ctx | ||
); | ||
transfer::public_freeze_object(metadata); | ||
transfer::public_transfer( | ||
treasury_cap, | ||
tx_context::sender(ctx) | ||
) | ||
} | ||
|
||
public entry fun mint( | ||
treasury_cap: &mut TreasuryCap<SD_COIN>, | ||
amount: u64, | ||
recipient: address, | ||
ctx: &mut TxContext | ||
) { | ||
coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); | ||
} | ||
|
||
public fun burn( | ||
treasury_cap: &mut TreasuryCap<SD_COIN>, | ||
coin: Coin<SD_COIN> | ||
) { | ||
coin::burn(treasury_cap, coin); | ||
} | ||
} |
54 changes: 54 additions & 0 deletions
54
mover/StarryDeserts/code/task5/starrydesert_swap/sources/starrydesert_faucetcoin.move
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,54 @@ | ||
module starrydesert_swap::sd_faucet_coin { | ||
use sui::coin::{Self, Coin, TreasuryCap}; | ||
use sui::url::{Self, Url}; | ||
|
||
public struct SD_FAUCET_COIN has drop {} | ||
|
||
public struct TreasuryCapHolder has key { | ||
id: UID, | ||
treasury_cap: TreasuryCap<SD_FAUCET_COIN>, | ||
} | ||
|
||
fun init( | ||
witness: SD_FAUCET_COIN, | ||
ctx: &mut TxContext | ||
) { | ||
let (treasury_cap, metadata) = coin::create_currency<SD_FAUCET_COIN>( | ||
witness, | ||
9, | ||
b"SDF", | ||
b"SD_FAUCET_COIN", | ||
b"StarryDesert Faucet Coin", | ||
option::some<Url>( | ||
url::new_unsafe_from_bytes( | ||
b"https://avatars.githubusercontent.com/u/86464159" | ||
) | ||
), | ||
ctx | ||
); | ||
transfer::public_freeze_object(metadata); | ||
|
||
let treasury_cap_holder = TreasuryCapHolder { | ||
id: object::new(ctx), | ||
treasury_cap, | ||
}; | ||
transfer::share_object(treasury_cap_holder); | ||
} | ||
|
||
public entry fun mint( | ||
treasury_cap_holder: &mut TreasuryCapHolder, | ||
amount: u64, | ||
recipient: address, | ||
ctx: &mut TxContext | ||
) { | ||
let treasury_cap = &mut treasury_cap_holder.treasury_cap; | ||
coin::mint_and_transfer(treasury_cap, amount, recipient, ctx); | ||
} | ||
|
||
public fun burn( | ||
treasury_cap: &mut TreasuryCap<SD_FAUCET_COIN>, | ||
coin: Coin<SD_FAUCET_COIN> | ||
) { | ||
coin::burn(treasury_cap, coin); | ||
} | ||
} |
74 changes: 74 additions & 0 deletions
74
mover/StarryDeserts/code/task5/starrydesert_swap/sources/starrydesert_swap.move
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,74 @@ | ||
module starrydesert_swap::swap { | ||
use sui::coin::{Self, Coin}; | ||
use starrydesert_swap::sd_coin::SD_COIN; | ||
use starrydesert_swap::sd_faucet_coin::SD_FAUCET_COIN; | ||
use sui::balance::{Self, Balance}; | ||
|
||
const EInsufficientBalance: u64 = 1000; | ||
|
||
public struct Pool has key { | ||
id: UID, | ||
coin_balance: Balance<SD_COIN>, | ||
faucet_balance: Balance<SD_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<SD_COIN>, | ||
faucet: &mut Coin<SD_FAUCET_COIN>, | ||
coin_amount: u64, | ||
faucet_amount: u64 | ||
|
||
) { | ||
let split_coin_balance = coin::balance_mut(coin).split(coin_amount); | ||
pool.coin_balance.join(split_coin_balance); | ||
let split_faucet_balance = coin::balance_mut(faucet).split(faucet_amount); | ||
pool.faucet_balance.join(split_faucet_balance); | ||
} | ||
|
||
public entry fun swap_coin_to_faucet( | ||
pool: &mut Pool, | ||
coin: &mut Coin<SD_COIN>, | ||
amount: u64, | ||
ctx: &mut TxContext | ||
) { | ||
assert!( | ||
pool.faucet_balance.value() >= amount, | ||
EInsufficientBalance | ||
); | ||
let split_coin_balance = coin::balance_mut(coin).split(amount); | ||
pool.coin_balance.join(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<SD_FAUCET_COIN>, | ||
amount: u64, | ||
ctx: &mut TxContext | ||
) { | ||
assert!( | ||
pool.coin_balance.value() >= amount, | ||
EInsufficientBalance | ||
); | ||
let split_faucet_balance = coin::balance_mut(faucet).split(amount); | ||
pool.faucet_balance.join(split_faucet_balance); | ||
let coin = coin::take(&mut pool.coin_balance, amount, ctx); | ||
transfer::public_transfer(coin, ctx.sender()); | ||
} | ||
} |
18 changes: 18 additions & 0 deletions
18
mover/StarryDeserts/code/task5/starrydesert_swap/tests/starrydesert_swap_tests.move
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 starrydesert_swap::starrydesert_swap_tests; | ||
// uncomment this line to import the module | ||
// use starrydesert_swap::starrydesert_swap; | ||
const ENotImplemented: u64 = 0; | ||
#[test] | ||
fun test_starrydesert_swap() { | ||
// pass | ||
} | ||
#[test, expected_failure(abort_code = ::starrydesert_swap::starrydesert_swap_tests::ENotImplemented)] | ||
fun test_starrydesert_swap_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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
NEXT_PUBLIC_NETWORK=mainnet |
3 changes: 3 additions & 0 deletions
3
mover/StarryDeserts/code/task6/navi-interacting/.eslintrc.json
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,3 @@ | ||
{ | ||
"extends": ["next/core-web-vitals", "next/typescript"] | ||
} |
1 change: 1 addition & 0 deletions
1
mover/StarryDeserts/code/task6/navi-interacting/.next/types/package.json
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 @@ | ||
{"type": "module"} |
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,3 @@ | ||
# navi-interacting | ||
|
||
This is a Next.js Sui dApp project... |
Binary file not shown.
13 changes: 13 additions & 0 deletions
13
mover/StarryDeserts/code/task6/navi-interacting/app/fonts.ts
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,13 @@ | ||
import localFont from "next/font/local"; | ||
|
||
export const geistSans = localFont({ | ||
src: "./fonts/GeistVF.woff", | ||
variable: "--font-geist-sans", | ||
weight: "100 900", | ||
}); | ||
|
||
export const geistMono = localFont({ | ||
src: "./fonts/GeistMonoVF.woff", | ||
variable: "--font-geist-mono", | ||
weight: "100 900", | ||
}); |
Binary file added
BIN
+66.3 KB
mover/StarryDeserts/code/task6/navi-interacting/app/fonts/GeistMonoVF.woff
Binary file not shown.
Binary file added
BIN
+64.7 KB
mover/StarryDeserts/code/task6/navi-interacting/app/fonts/GeistVF.woff
Binary file not shown.
7 changes: 7 additions & 0 deletions
7
mover/StarryDeserts/code/task6/navi-interacting/app/globals.css
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,7 @@ | ||
@tailwind base; | ||
@tailwind components; | ||
@tailwind utilities; | ||
|
||
body { | ||
font-family: Arial, Helvetica, sans-serif; | ||
} |
23 changes: 23 additions & 0 deletions
23
mover/StarryDeserts/code/task6/navi-interacting/app/layout.tsx
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,23 @@ | ||
import type { Metadata } from "next"; | ||
import "./globals.css"; | ||
import { geistSans, geistMono } from "./fonts"; | ||
import { Providers } from "./providers"; | ||
|
||
export const metadata: Metadata = { | ||
title: "Create Next App", | ||
description: "Generated by create next app", | ||
}; | ||
|
||
export default function RootLayout({ | ||
children, | ||
}: Readonly<{ | ||
children: React.ReactNode; | ||
}>) { | ||
return ( | ||
<html lang="en"> | ||
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}> | ||
<Providers>{children}</Providers> | ||
</body> | ||
</html> | ||
); | ||
} |
27 changes: 27 additions & 0 deletions
27
mover/StarryDeserts/code/task6/navi-interacting/app/page.tsx
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,27 @@ | ||
import { ConnectButton, useCurrentAccount } from "@mysten/dapp-kit"; | ||
import { Box, Flex, Heading } from "@radix-ui/themes"; | ||
import NaviPage from "../components/navi"; | ||
export default function Home() { | ||
useCurrentAccount(); | ||
return ( | ||
<> | ||
<Flex | ||
position="sticky" | ||
px="4" | ||
py="2" | ||
justify="between" | ||
style={{ | ||
borderBottom: "1px solid var(--gray-a2)", | ||
}} | ||
> | ||
<Box> | ||
<Heading>Generated by create next dApp Starter Template</Heading> | ||
</Box> | ||
<Box> | ||
<ConnectButton /> | ||
</Box> | ||
</Flex> | ||
<NaviPage /> | ||
</> | ||
); | ||
} |
20 changes: 20 additions & 0 deletions
20
mover/StarryDeserts/code/task6/navi-interacting/app/providers 20241126 234847 48439192.tsx
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,20 @@ | ||
'use client' | ||
|
||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; | ||
import { SuiClientProvider, WalletProvider } from "@mysten/dapp-kit"; | ||
import { networkConfig, network } from "@/config" | ||
import "@mysten/dapp-kit/dist/index.css"; | ||
|
||
const queryClient = new QueryClient(); | ||
|
||
export function Providers({ children }: { children: React.ReactNode }) { | ||
return ( | ||
<QueryClientProvider client={queryClient}> | ||
<SuiClientProvider networks={networkConfig} defaultNetwork={network}> | ||
<WalletProvider> | ||
{children} | ||
</WalletProvider> | ||
</SuiClientProvider> | ||
</QueryClientProvider> | ||
); | ||
} |
Oops, something went wrong.