Skip to content

Commit

Permalink
Merge branch 'move-cn:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
uvd authored Jul 17, 2024
2 parents df3197e + 41dec66 commit ba5955d
Show file tree
Hide file tree
Showing 1,019 changed files with 71,920 additions and 223 deletions.
17 changes: 17 additions & 0 deletions .github/pr-commenter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
comment:
on-update: recreate
header: |
谢谢你的提交,请在社群里面发出你的提交PR才会被 :tada:.
footer: |
---
请仔细阅读任务要求
snippets:
- id: any-markdown-file-changed
files:
- '*.md'
- '**/*.md'
body: |
QQ群: 79489587 <br/>
电报群: https://t.me/move_cn <br/>
12 changes: 12 additions & 0 deletions .github/workflows/pr-commenter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: "PR Commenter"
on:
- pull_request_target

jobs:
pr-comment:
runs-on: ubuntu-latest
steps:
- uses: exercism/[email protected]
with:
github-token: "${{ github.token }}"
config-file: ".github/pr-commenter.yml"
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,18 @@ Let's Move 一项学Move获得SUI的激励计划,鼓励更多的人学习Move

## 学习资料

[学习路径](learning_map.md)

### 书籍
| 书名 | 中文 | 英文 | 配套视频 |
|:--------------------|----------------------------------------|:----------------------------------------------------:|:---------------------------------------------------------:|
| Move 导论 | [中文](https://intro-zh.sui-book.com/) | [Sui Move Intro Course](https://intro.sui-book.com/) | [bilibili](https://www.bilibili.com/video/BV1RY411v7YU) [Youtube](https://www.youtube.com/watch?v=lZHjmo2ngu0) |
| Sui Book | [中文](https://sui-book.com) | | |
| Sui Move by Example | [中文](https://examples.sui-book.com/) | [Sui Move by Example](https://examples.sui.io/) | |
| Move Book | | [英文](https://move-book.com/) | |
| Let's Move Sui | | [let's move](https://letsmovesui.com/) | |
| 轻松入门Move | [轻松入门Move](https://easy.sui-book.com/) | | |
| 书名 | 中文 | 英文 | 配套视频 |
|:--------------------|-------------------------------------------------|:----------------------------------------------------:|:---------------------------------------------------------:|
| Move 导论 | [中文](https://intro-zh.sui-book.com/) | [Sui Move Intro Course](https://intro.sui-book.com/) | [bilibili](https://www.bilibili.com/video/BV1RY411v7YU) [Youtube](https://www.youtube.com/watch?v=lZHjmo2ngu0) |
| Sui Book | [中文](https://sui-book.com) | | |
| Sui Move by Example | [中文](https://examples.sui-book.com/) | [Sui Move by Example](https://examples.sui.io/) | |
| Move Book | [中文](https://move.sui-book.com/index.html) | [英文](https://move-book.com/) | |
| Move Reference | [中文](https://reference.sui-book.com/index.html) | [英文](https://move-book.com/reference/) | |
| Let's Move Sui | [中文](https://movesui.sui-book.com/) | [let's move](https://letsmovesui.com/) | |
| 轻松入门Move | [轻松入门Move](https://easy.sui-book.com/) | | |

### 文档
- [官方文档](https://docs.sui.io/)
Expand Down
52 changes: 52 additions & 0 deletions learning_map.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 学习路径

## 步骤一:前置安装

### 安装Sui Wallet
采用Google插件
https://chromewebstore.google.com/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil

### 安装Nodejs
具体安装过程需要自行探索
https://nodejs.org/en

### 安装编译器
VSCODE 和 RustRover 二选一即可
#### RustRover
RustRover的报错和提示比较友好,也有成熟的插件
https://www.jetbrains.com.cn/rust/
#### VSCODE
容易上手,通用性强
https://code.visualstudio.com/

### 配置开发环境
https://docs.sui.io/guides/developer/getting-started/sui-install
建议采用从Github下载二进制文件,对小白更友好


## 步骤二:基本语法学习
[bilibili教学视频](https://www.bilibili.com/video/BV1Rm42177Kx/) (视频包括基本语法的学习和实战演练 )
课程相关代码库:
- https://github.com/404ll/letsmove/tree/main/tutorial/bootcamp
- Swap以及Coin的代码库 https://github.com/uvd/sui-swap-course

完整入门手册,非常详细
- [轻松入门move](https://easy.sui-book.com/chapter_1.htm)


## 步骤三:深入学习以及完成task

区块链浏览器:https://suivision.xyz/

由于教学视频的时间限制,手把手教学来完成每一个task基本是不现实的,同时已有的学习资料已经完全足够从入门到熟练掌握
因此需要学员有强大的内驱力和学习能力,从已有的文档和代码库中,寻找和学习所需的知识点

基于官方标准库,可以查询和了解每一个函数的功能及使用方法
- https://github.com/MystenLabs/sui/tree/main/crates/sui-framework

探索官方文档(包括Coin协议等等)
- https://docs.sui.io




99 changes: 99 additions & 0 deletions mover/0x-wen/code/hello_dapp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Sui dApp Starter Template

This dApp was created using `@mysten/create-dapp` that sets up a basic React
Client dApp using the following tools:

- [React](https://react.dev/) as the UI framework
- [TypeScript](https://www.typescriptlang.org/) for type checking
- [Vite](https://vitejs.dev/) for build tooling
- [Radix UI](https://www.radix-ui.com/) for pre-built UI components
- [ESLint](https://eslint.org/) for linting
- [`@mysten/dapp-kit`](https://sdk.mystenlabs.com/dapp-kit) for connecting to
wallets and loading data
- [pnpm](https://pnpm.io/) for package management

## Deploying your Move code

### Install Sui cli

Before deploying your move code, ensure that you have installed the Sui CLI. You
can follow the [Sui installation instruction](https://docs.sui.io/build/install)
to get everything set up.

This template uses `devnet` by default, so we'll need to set up a devnet
environment in the CLI:

```bash
sui client new-env --alias devnet --rpc https://fullnode.devnet.sui.io:443
sui client switch --env devnet
```

If you haven't set up an address in the sui client yet, you can use the
following command to get a new address:

```bash
sui client new-address secp256k1
```

This well generate a new address and recover phrase for you. You can mark a
newly created address as you active address by running the following command
with your new address:

```bash
sui client switch --address 0xYOUR_ADDRESS...
```

We can ensure we have some Sui in our new wallet by requesting Sui from the
faucet (make sure to replace the address with your address):

```bash
curl --location --request POST 'https://faucet.devnet.sui.io/gas' \
--header 'Content-Type: application/json' \
--data-raw '{
"FixedAmountRequest": {
"recipient": "<YOUR_ADDRESS>"
}
}'
```

### Publishing the move package

The move code for this template is located in the `move` directory. To publish
it, you can enter the `move` directory, and publish it with the Sui CLI:

```bash
cd move
sui client publish --gas-budget 100000000 counter
```

In the output there will be an object with a `"packageId"` property. You'll want
to save that package ID to the `src/constants.ts` file as `PACKAGE_ID`:

```ts
export const DEVNET_COUNTER_PACKAGE_ID = "<YOUR_PACKAGE_ID>";
```

Now that we have published the move code, and update the package ID, we can
start the app.

## Starting your dApp

To install dependencies you can run

```bash
pnpm install
```

To start your dApp in development mode run

```bash
pnpm dev
```

## Building

To build your app for deployment you can run

```bash
pnpm build
```
59 changes: 59 additions & 0 deletions mover/0x-wen/code/hello_dapp/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<!doctype html>
<html lang="en" class="dark-theme" style="color-scheme: dark">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Sui dApp Starter</title>

<style>
/*
Josh's Custom CSS Reset
https://www.joshwcomeau.com/css/custom-css-reset/
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
* {
margin: 0;
}
body {
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
img,
picture,
video,
canvas,
svg {
display: block;
max-width: 100%;
}
input,
button,
textarea,
select {
font: inherit;
}
p,
h1,
h2,
h3,
h4,
h5,
h6 {
overflow-wrap: break-word;
}
#root,
#__next {
isolation: isolate;
}
</style>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
34 changes: 34 additions & 0 deletions mover/0x-wen/code/hello_dapp/move/counter/Move.lock
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 = 2
manifest_digest = "3700BE3663FD5EAE7AF34BC8B36CFF2AA9C8D280DDEE9324B30BE9F9BFDDD64D"
deps_digest = "F8BBB0CCB2491CA29A3DF03D6F92277A4F3574266507ACD77214D37ECA3F3082"
dependencies = [
{ name = "Sui" },
]

[[move.package]]
name = "MoveStdlib"
source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/move-stdlib" }

[[move.package]]
name = "Sui"
source = { git = "https://github.com/MystenLabs/sui.git", rev = "framework/testnet", subdir = "crates/sui-framework/packages/sui-framework" }

dependencies = [
{ name = "MoveStdlib" },
]

[move.toolchain-version]
compiler-version = "1.27.2"
edition = "2024.beta"
flavor = "sui"

[env]

[env.testnet]
chain-id = "4c78adac"
original-published-id = "0x54fae9c956cc1a2ef3f1436e1fa008a7230d7f79070c58bfc070c5d893315483"
latest-published-id = "0x54fae9c956cc1a2ef3f1436e1fa008a7230d7f79070c58bfc070c5d893315483"
published-version = "1"
10 changes: 10 additions & 0 deletions mover/0x-wen/code/hello_dapp/move/counter/Move.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[package]
name = "counter"
version = "0.0.1"
edition = "2024.beta"

[dependencies]
Sui = { git = "https://github.com/MystenLabs/sui.git", subdir = "crates/sui-framework/packages/sui-framework", rev = "framework/testnet" }

[addresses]
counter = "0x0"
53 changes: 53 additions & 0 deletions mover/0x-wen/code/hello_dapp/move/counter/sources/counter.move
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0

/// This example demonstrates a basic use of a shared object.
/// Rules:
/// - anyone can create and share a counter
/// - everyone can increment a counter by 1
/// - the owner of the counter can reset it to any value
module counter::counter {
use sui::transfer;
use sui::object::{Self, UID};
use sui::tx_context::{Self, TxContext};

/// A shared counter.
public struct Counter has key {
id: UID,
owner: address,
value: u64
}

public fun owner(counter: &Counter): address {
counter.owner
}

public fun value(counter: &Counter): u64 {
counter.value
}

/// Create and share a Counter object.
public fun create(ctx: &mut TxContext) {
transfer::share_object(Counter {
id: object::new(ctx),
owner: tx_context::sender(ctx),
value: 0
})
}

/// Increment a counter by 1.
public fun increment(counter: &mut Counter) {
counter.value = counter.value + 1;
}

/// Set value (only runnable by the Counter owner)
public fun set_value(counter: &mut Counter, value: u64, ctx: &TxContext) {
assert!(counter.owner == tx_context::sender(ctx), 0);
counter.value = value;
}

/// Assert a value for the counter.
public fun assert_value(counter: &Counter, value: u64) {
assert!(counter.value == value, 0)
}
}
Loading

0 comments on commit ba5955d

Please sign in to comment.